【发布时间】:2013-10-27 23:14:28
【问题描述】:
我想为移动联系人设计他的数据库。这是查看我已经设计的内容的链接:
http://upload7.ir/images/87645261298795662612.jpg
这是我的示例!它不完整,但它只是一个小小的尝试。我这里有问题!我想拥有无限的传真号码或电话号码等。
这种设计不行!有没有设计完之后再增加一列?
或者我必须彻底改变这一点?
如果我改变了这个,我该怎么办?取另一张桌子并取其中的所有电话号码并添加 1 列以获取有关其电话/传真/手机的信息?如果我这样做,我的数据库中总会有一个数据不断重复,这不好!寻找另一个建议。
谢谢:-)
【问题讨论】:
-
是的,您可以使用另一个表联系人号码(Id、ContactID(外键,取自联系人表)、号码、类型(传真/电话/手机)、详细信息)。在此 ContactID 每次都重复,但它比单独获取 3 个表要好得多,这是处理与同一联系人相关的多个数据的规范化方式。您的关注或其他建议将不胜感激。
-
但是这个数据库应该是用于移动通讯录的!我认为如果我们要使用那种表,它会使我们的数据库变慢!因为如果我们有 10000 条或更多记录,并且我们想为 Contact #1 添加 1 个移动设备,它将位于表的末尾,这将导致我们的程序处理该记录的延迟。如果我们对每种类型的号码使用特定表,这将使我们的搜索速度更快,并且我们可以获得更好的查询,因为我们可以为移动号码建立索引表,可以使用他们的电话号码或更多选项来查找人员。再次感谢 Ankit Arora
-
顺便说一句,当我说有一个总是重复的字段是类型字段时。对于每个联系人,您应该保留这样的记录:1, 1, 123456, Mobile 2, 1, 123457, Mobile 3, 2, 123333, Mobile 因为您可以看到移动字段不断重复。
标签: database-design android-contacts