针对特定方案的CRM用户表的数据库设计

问题描述 投票:0回答:3

我正在为我们的CRM系统设计一个数据库,需要一些CRM用户表的帮助。

用户类型:

  1. 管理员
  2. 分支机构2的销售代表
  3. 第3分部的销售代表
  4. 客户登录

现在针对这种情况,将所有用户放在一个表中并使用名为“type”的表属性来识别用户类型是否合理?或者,我应该为每种类型的用户分配一个单独的表吗?此外,销售代表之间将共享一些信息。

sql database database-design crm
3个回答
1
投票

通常情况下,我通常会选择一张与之相关的UserType表。如果您要存储其他Sales Rep属性,请创建一个带有外键的SalesRep表,返回User表。然后,创建一个连接UserSalesRep的视图,从逻辑上讲,它看起来像只有一个usvSalesRep表,它具有Sales Reps所需的所有属性。

但是,这在很大程度上取决于数据量和事务负载,因此您可以提供的其他信息非常有用。


1
投票

这取决于您期望的用户数量。

但通常一张桌子就足够了。


如果你有数十亿用户可能你可以做horizontal partitioning并制作多个表。


1
投票

单桌应该没问题。我不同意用户在这种情况下对其设计的影响确实很大。

只要有可能,你应该设计你的桌子以模仿现实生活。管理员,销售代表等只是他们的描述/属性。最终,他们都是“人”......或者用户。因此,将一个“用户”表与“管理员”,“SalesRep”作为属性是有道理的。仅当用户只能为“类型”时才使用“类型”方法。如果它们可以是多个用户类型,请使用单独的列。 IE浏览器。一个可以同时是SalesRepBranch2和SalesRepBranch3。可能会考虑进一步规范这一点。

© www.soinside.com 2019 - 2024. All rights reserved.