我正在为CRM设计数据库架构。它有以下表格:users
,organizations
,contacts
,addresses
,organization_types
。
organizations
可能是公司,非营利组织或个人。
users
与organizations
有很多关系。原因在于,例如,一家公司可以在应用程序上拥有两个不同登录的销售人员和经理。另一方面,销售人员可能正在为两家不同的公司进行销售。
contact
和addresses
与organizations
有一对一的关系。我的客户只希望一个组织拥有其中一个。
我的设计方式是organization
也可以是客户,属于另一个organization
。这意味着组织表与自己有一对多的关系。
这对我来说很有意义,因为它们似乎是同一个实体。客户还需要一个contacts
和addresses
表,它也可以是公司,非营利组织或个人。
要考虑另一位开发人员提出的观点是,随着时间的推移,查询数据库以区分我们客户的组织和客户客户的组织将是昂贵的。
最好的方法是什么?制作一个client_organizations表并将这两个表分开会更好吗?
答案 0 :(得分:0)
我将保留一个表并创建一个名为parent_organization的列。 Parent_organization可以为空,并存储子组织所属的父组织的主键