2012-03-20 4 views
2

У меня есть таблица:Должен ли я нормализовать или де-нормализовать?

Person с колоннами:

pID(PK) 
FName 
LName 
plID(FK) 

другой стол Place с:

plID(PK) 
plCity 
plState 
plZip 

Что лучше просто Person уподобилось:

pID(PK) 
FName 
LName 
City 
State 
Zip 

Для instanc e:

John Doe New York, NY 00000 
Jane Doe New York, NY 00000 
Jim Doe New York, NY 00000 
+0

http://stackoverflow.com/questions/934577/should-i-normalize-my-db-or-not – transistor1

+0

@ transistor1 - хорошая ссылка, спасибо – CodeTalk

ответ

5

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

Поэтому ответ да. Вы должны абсолютно нормализовать свою базу данных. Вы могли бы просто включить почтовый индекс в таблицу Person, и пусть это будет внешний ключ в Person и первичный ключ в Place.

+0

Согласен. Единственное, что нужно, чтобы убедиться, что, когда Джон Доу переезжает в Сан-Франциско, штат Калифорния, 99999, он только движется, а не все, кто был в Нью-Йорке, Нью-Йорк, 00000. –

+0

@JonathanLeffler Используя мой предложенный дизайн, вы просто измените zip-код в таблице «Лицо» до 99999. Естественно, «Place» не следует касаться. – kba

+0

Ну, я забыл включить, эта таблица имеет PersonID (PK) вместо этого, поэтому она просто обновит, где этот PersonID = whatnyzipwas для нового zip ... в psuedo-sql :) – CodeTalk

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