我们设计这个数据库来跟踪我们的客户数据库,但我觉得它的设计有点复杂我觉得它可以更简单有人可以提供一些设计建议吗?


关于这张图的一些想法:
phone引用,更新一个数字是一项简单的操作Customer,但奇怪的是(对我来说)插入一个新的phone并在连接表上进行多个操作只是为了做同样的事情。Email。default位或ordinal列?如果简单是这里的关键点,我建议您将与客户相关的地址类型信息折叠到一个表中,如下所示:
customer_contact_details{
customer_id MEDIUM_INT
contact_type VARCHAR2(10)
contact_details VARCHAR2(100)
status BOOLEAN
}
然后可以Home Phone,email,primary_email,work_phone,primary contact根据您的需要将contact_type 字段标记为。然后,您可以将所有此类相关的联系信息放在一个表中。简化您的架构,您只需要一个连接即可理解信息。
另一个部分解决方案是使用联系人表:客户有联系人(一对多);每个联系人可能有多个电话号码(即使那样,您也只需要一个手机号码、一个家庭号码、一个工作号码和一个传真号码)但只有一个电子邮件地址。