【发布时间】:2015-10-22 20:23:40
【问题描述】:
我可能做错了,但它就是这样。
我正在尝试构建非常基本的 CRM 之类的东西。我知道它们有很多,但实际上我想学习一些东西。我试图为这个特定场景找到现成的例子,但我发现的只是理论和简单化的例子,我无法使用。
我可以让这个图表更简单,但在这种情况下我会有空单元格,所以基本上我在循环这个:)
要求:
以前从未联系过某些公司。这就是为什么我创建了两个额外的表
contact_emails、company_emails、contact_phones、company_phones。被联系的公司可能已经指定了联系人(人)。
个人可以拥有电话和电子邮件。
一个人可以分配到多个公司
一个公司可以有多个人
图表:
]
问题:
- 我走对了吗?
- 可以改进哪些方面以及如何改进?
【问题讨论】:
-
我不确定您是否需要 company_phones 和 company_emails,没有这些设计应该可以正常工作。任何数据库设计都不应包含表的循环引用——应该始终存在层次结构。
-
我想我需要它们(可能我错了)。电子邮件可以分配给公司,(稍后联系公司时)电子邮件也可以分配给个人,电子邮件可以分配给公司和个人。
-
是的,但是您可以通过电子邮件执行此操作-->contact_emails-->联系人-->公司不能吗?
-
不,我不能,因为联系人不必与公司相关联。例如,在我联系公司本身之前,我不会有联系人。
-
在这种情况下,company_id 只是空白...
标签: database-design data-modeling database-diagram