【发布时间】:2011-10-16 22:28:06
【问题描述】:
下面是一个数据库的图表,我试图在其中确定合适的设计。这里有一些注意事项。
- 员工/经理与客户相关联。
- partyid 是一种在全球范围内代表一个人的方式;客户、员工、经理。它需要一直向下传播吗?它应该是所有表中的主键,还是只是代表个人的表?
- billing、reporting、credential 等其他表是否需要有各自的主键 ID,例如billingid、reportingid、credentialid 等?
关于实体交互的一些说明。
- 员工有一个与他们关联的经理。
- 客户有一个经理,可能还有员工与他们相关联。
- 客户和员工需要报告时间计费。
【问题讨论】:
-
您的客户是组织还是个人?您的员工可以成为客户吗?即使可以,您在模型中是否需要它?
-
@Damir 客户是个人。客户和员工都与一个组织相关联(组织是 party 表中的字段)。不过,这对 customer 表提出了一个很好的观点。客户表中的对象确实与我移入该表的订单有关。我还删除了 employeeid 作为主键,因为有两个主键没有意义。我更新了问题和图表以反映这些变化。
-
@Astron,我想问一下(题外话)你用什么软件来创建这个图表?它看起来相当漂亮......
-
@stakx Microsoft Visio 标准。
标签: mysql database database-design entity-relationship