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

时间:2012-01-03 17:05:13

标签: sql database database-design crm

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

用户类型:

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

3 个答案:

答案 0 :(得分:1)

通常情况下,我通常会使用一个与User关联的Type表。如果您要存储其他Sales Rep属性,请使用外键创建一个SalesRep表,返回User表。然后,创建一个连接UserSalesRep的视图,从逻辑上看,就像只有一个usvSalesRep表,它具有Sales Reps所需的所有属性。

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

答案 1 :(得分:1)

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

但通常只需要一张桌子。


如果你有数十亿用户,你可以horizontal partitioning做多个表。

答案 2 :(得分:1)

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

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