我应该将组织表分成两个表吗?

时间:2017-01-20 18:29:50

标签: mysql sql database-design relational-database erd

我正在为CRM设计数据库架构。它有以下表格:usersorganizationscontactsaddressesorganization_types

organizations可能是公司,非营利组织或个人。

usersorganizations有很多关系。原因在于,例如,一家公司可以在应用程序上拥有两个不同登录的销售人员和经理。另一方面,销售人员可能正在为两家不同的公司进行销售。

contactaddressesorganizations有一对一的关系。我的客户只希望一个组织拥有其中一个。

我的设计方式是organization也可以是客户,属于另一个organization。这意味着组织表与自己有一对多的关系。

这对我来说很有意义,因为它们似乎是同一个实体。客户还需要一个contactsaddresses表,它也可以是公司,非营利组织或个人。

要考虑另一位开发人员提出的观点是,随着时间的推移,查询数据库以区分我们客户的组织和客户客户的组织将是昂贵的。

最好的方法是什么?制作一个client_organizations表并将这两个表分开会更好吗?

1 个答案:

答案 0 :(得分:0)

我将保留一个表并创建一个名为parent_organization的列。 Parent_organization可以为空,并存储子组织所属的父组织的主键