2012-03-21 2 views
0

У меня есть таблица Students которая содержит следующие колонки: Id,FirstName,LastName,Adress. Колонный адрес будет содержать только уличный адрес.проблема оптимизации базы данных

вопрос: будет ли лучше для оптимизации базы данных изолировать столбец Adress в другой таблице?

+0

Что вам нужно оптимизировать? Каково содержание столбца «Адрес»? Он содержит полный адрес человека? Если это так, не разбивайте его на разные столбцы на улицу, город, почтовый индекс и т. Д. Вы должны больше рассказать о своей структуре базы данных/таблицы, если хотите получить хороший ответ. –

ответ

1

Да. Если вы разделите его на другую таблицу, вы можете иметь более одного адреса на человека. Если вы разделите его на две разные таблицы, таблицу адресов и таблицу StudentAddress, чтобы сопоставить их вместе, вы можете убедиться, что один адрес разделяется между людьми или даже отслеживает историю адресов для одного человека. Кроме того, в отдельной таблице вы можете разбить адрес на столбцы, чтобы вы могли легко искать город или провинцию или страну.

Вы не можете сделать это, помещая адрес в один столбец с помощью таблицы Student.

+0

Наверху, таблица City, Country с иностранным ке будет значительно сократить размер базы данных и быстрее делать запросы (сколько стран вы имеете дело) ?. По крайней мере, в большинстве случаев. – TomTom

+0

спасибо за ваши ответы, я попробую этот подход – cascadox

+0

@TomTom ABs полностью согласен. Нормализация - это метод оптимизации. Для хранения, производительности, простоты использования ... –

1

Это зависит от того, как вы собираетесь обращаться с этим адресом. Если вам нужно будет относиться к нему как к другому объекту, т. Е. Связывать один адрес с несколькими учениками или наоборот, то вам следует выполнить нормализацию. Если адрес - это только атрибут студента объекта, оставьте его как есть.

0

Для полных правильных структур данных для управления адресами: модель данных Ressource BOok, том 1. Это намного сложнее, чем вы думаете.

Смежные вопросы