我正在为网络基础设计数据库(ASP.NET)电话簿 - 联系人管理器软件。
每个联系人可能有不同的电话类型..(家庭,工作,移动等...)
这是我的数据库设计:
电话类型包含例如:
中号
这个设计得好吗?
我想这个设计有问题,我无法显示所有数字的联系人(我的意思是每一次联系所有他的数字在一行而不是每一行联系的数量)在网格中给用户。
你的建议是什么?
我要在网格中显示所有电话类型的所有联系人。
我认为使用当前的设计我会遇到问题。
答案 0 :(得分:0)
我想这个我无法显示的设计会有问题 与所有号码的联系人在网格中给用户。你的...是 建议?
你可以通过一个简单的查询来做到这一点。
select c.contactid, c.contactname,
pt.typetitle,
pn.phoneno
from contact c
inner join phonenumber pn on pn.contactid = c.contactid
inner join phonetype pt on pt.phonetypeid = pn.phonetype
对于数据完整性,除了主键约束之外,您还需要一些UNIQUE约束。如果我是你,我会考虑对ContactName,TypeTitle和对(ContactID,PhoneType)的UNIQUE约束。实际上,对(ContactID,PhoneType)可能是比PhoneID更好的主键;考虑完全放弃PhoneID。