#php #mysql
#php #mysql
Вопрос:
Я работаю над проектом, и в итоге у меня получилась таблица ниже:
--------------- -------------- ------ ----- -------------------- -------
| Field | Type | Null | Key | Default | Extra |
--------------- -------------- ------ ----- -------------------- -------
| id | int(11) | NO | MUL | NULL | A_I |
| user _id | int(11) | NO | | NULL | |
| info | varchar(255) | NO | | NULL | |
| country | tinyint(3) | NO | | NULL | |
| date_added | timestamp | NO | | 0000-00-00 00:00:00| |
--------------- -------------- ------ ----- -------------------- -------
Поскольку я хотел избежать постоянного хранения стран в виде varchar, я подумал, что вместо этого мне следует использовать идентификаторы номеров. Мой вопрос в том, было бы лучше хранить идентификаторы стран в таблице, где я бы дал имя каждому из них, или сделать это в файле php? Страны не изменятся или что-то в этом роде. Это будет список из примерно 100 стран.
Спасибо!
Комментарии:
1. храните их в
countries
таблице и используйте соединение, чтобы сопоставить их2. Я думаю, вам понадобится таблица «country», чтобы ссылаться на это число идентификаторов.
3. Я бы использовал таблицу и импортировал это: github.com/raramuridesign/mysql-country-list/blob/master /…
Ответ №1:
Используйте отдельную таблицу стран.
countries table
---------------
id
name
Затем вы можете связать с идентификатором страны в вашей таблице. Таким образом, вы убедитесь, что добавлены только страны из вашего списка, и вам не нужно хранить строки везде, и вы можете легко изменить названия стран или добавить новые.
Комментарии:
1. Тогда это будет сделано. Я только что закончил с тонной таблиц, Большое спасибо за ответ!
2. НЕТ — не используйте суррогатные ключи, когда существует совершенно хороший, эффективный и стандартный механизм представления стран (ISO 3166)