我们设计这个数据库来跟踪我们的客户数据库,但我觉得它设计有点复杂我觉得有人可以提一些设计建议吗?
答案 0 :(得分:0)
对此图表的一些想法:
phone
直接引用Customer
,则更新一个数字是一个简单的操作,但是奇怪(对我来说)插入一个新的phone
并且在连接表上有多个操作只是为了做同样的事情的事情。Email
相同的交易。default
位还是ordinal
列?答案 1 :(得分:0)
如果简单性是关键点,我建议您将与客户相关的地址类型信息折叠到一个表中,如下所示:
customer_contact_details{
customer_id MEDIUM_INT
contact_type VARCHAR2(10)
contact_details VARCHAR2(100)
status BOOLEAN
}
然后可以根据您的需要将contact_type字段标记为Home Phone,email,primary_email,work_phone,primary contact
。然后,您可以在一个表中包含所有此类相关联系信息。简化您的架构,您只需要一个联接就可以了解信息。
答案 2 :(得分:0)
另一个部分解决方案是使用联系人表:CUSTOMER有联系人(一对多);每个CONTACT可能有多个PHONE号码(即便如此,您只需要一个手机号码,一个家庭号码,一个工作号码和一个传真号码),但只有一个EMAIL地址。