我应该正常化还是去标准化?

Cod*_*alk 2 mysql database database-design

我有一张桌子:

Person 列:

pID(PK)
FName
LName
plID(FK)
Run Code Online (Sandbox Code Playgroud)

另一张桌子Place:

plID(PK)
plCity
plState
plZip
Run Code Online (Sandbox Code Playgroud)

是不是更好,只是Person做了像:

pID(PK)
FName
LName
City
State
Zip
Run Code Online (Sandbox Code Playgroud)

例如:

John Doe New York, NY 00000
Jane Doe New York, NY 00000
Jim Doe New York, NY 00000
Run Code Online (Sandbox Code Playgroud)

kba*_*kba 5

您应该规范化数据库以消除数据冗余.在您的情况下,您很可能会有来自同一地方的很多人,这会导致数据冗余.

因此答案是肯定的.您应该完全规范化您的数据库.您可以在Person表中包含邮政编码,并将其作为外键Person和主键Place.