【发布时间】:2012-04-27 23:32:59
【问题描述】:
自从我开始处理我的数据库以来,我一直在与最初的决定作斗争。我正在争论是否需要单独的电子邮件地址表。我的数据库如下所示:
people(id, first_name, last_name, email)
addresses(id, address, street, city, state, zip, latitude, longitude)
addresses_people(id, person_id, address_id)
phone_numbers(id, person_id, phone_number, type)
我认为我不需要单独的电子邮件地址表,因为我只希望每人一个,无论他们是否有更多。我似乎遇到的问题是有些人没有电子邮件地址。很多时候,我会将孩子存放在 people 表中。现在,如果我将电子邮件地址放在单独的表中以避免我将拥有数千个空电子邮件字段,似乎会是更好的设计。
现在要更改它是一件非常麻烦的事情,因为该应用已经在一定程度上已经投入生产了,但是现在更改它而不是一两年后会成倍地容易。将电子邮件更改为另一张桌子是否值得一两天?
【问题讨论】:
-
那么您将用数千个空文本字段替换数千个空外键字段。
-
什么比例的字段会是空的?
-
@Mr.Disappointment:外键可能在
emails表一侧。 -
@StuartDunkeld 我会说大约 30%。
-
是的,外键将在电子邮件方面。 id、person_id、email 所以没有空字段
标签: database database-design relational-database