2012-05-14 5 views
2

Я обычно не создаю базы данных, поэтому у меня возникают некоторые сомнения относительно того, как нормализовать (или нет) таблицу для регистрации пользователей. У меня есть сомнения:Нормализовать слишком много против слишком мало, примеры?

  • locationTown: Я планирую нормализовать для стран и иметь отдельную таблицу для этого, но должен ли я делать то же самое для городов? Я предполагаю, что пользователи будут вводить это при регистрации, а не в выпадающем списке. Можно ли нормализовать, когда вход может поступать от пользователей?
  • maritalStatus: У меня будет выбор около 5 или около того разных статусов.

Кроме того, знает ли кто-нибудь о хорошем месте, чтобы найти схему базы данных реального мира/нормализующие примеры?

Благодаря

ответ

0
  • locationTown - просто хранить его непосредственно в таблице пользователей. В противном случае вам придется искать существующий город, принимая во внимание опечатки и код. Также некоторые люди используют нестандартные символы и языки (Краков против Кракова и Кракова, см. Также: romanization). Если вы действительно хотите иметь таблицу с городами, по крайней мере, предоставить автозаполнение, чтобы пользователи, скорее всего, выбрали существующий город. В противном случае подготовьтесь к большому количеству дубликатов или почти дубликатов.

  • maritalStatus - это, с другой стороны, должно быть в отдельной таблице. Или более точно: используйте одиночный символ или число, чтобы представить семейное положение. Дополнительная таблица, сопоставляющая это с понятной для человека форме, предназначена только для удобства (помните о ), а ограничение внешнего ключа гарантирует, что неправильный статус не используется.

-1

я бы не беспокоиться об этом слишком много - Нормализация базы данных (3NF и др) был over-emphasized in academia and isn't overly practical in industry. Кроме того, нам нужно будет увидеть всю вашу схему, чтобы судить о том, где эти реализации подходят. Сосредоточьтесь на индексировании обычно используемых столбцов, прежде чем беспокоиться о нормализации.

Возможно, вам стоит взглянуть на this SO question, прежде чем вы погрузитесь в дальнейшем.

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