Хранить данные в MySQL или в файле PHP?

#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)