客户,员工和供应商的数据库

时间:2018-10-18 20:28:39

标签: mysql database database-design

我正在使用MySQL数据库,并且有客户,员工和供应商。

我为它们创建3个表。

但是例如,员工也可以是客户。

然后为所有人(客户,员工和供应商)创建一个公用表,并为每个表创建多个角色。

还有另一种方法吗?

您如何看待聚会模式?

1 个答案:

答案 0 :(得分:1)

这很大程度上是一个基于意见的问题,说实话,在设计这样的数据库的过程中,您可能会在制定最合适的数据库时进行多次修改和更改关系和表的操作。

但是您要获得的两个指导原则是

1)减少数据重复-例如,如果我既是供应商又是客户,并且我更改了电话号码,则只需要执行一次

2)参照完整性-例如,如果我的所有相关人员都放在一个表中,并且我在订单和人员之间有外键,则我需要确保只有那些作为供应商的人员在订单中的供应商参考。

我这样做的方法是为供应商,客户,客户等创建多个表,每个表都具有与该角色相关的所有特定详细信息。诸如SupplierTerms,CreditLimit等之类的东西。但是它们都没有人数据名称,MobileNumber,DOB等。这些都将在一个Person表中,其他表将引用该表。

在PersonRole表中,您可能还为每个人设置了一组可能的角色,尽管这不是必需的-只需根据您的要求进行操作即可。但是请记住我在顶部提到的两个指导原则。