ER图中的用户和客户

时间:2017-02-20 04:31:04

标签: entity-relationship

我有一个创建ER图的方案。

方案

有几个地区。一个地区可以有几个商业链。每个业务链都有一个区域可供覆盖。 One Business连锁店有几家分店。客户可以使用此系统连接到任何业务链。业务链的员工可以由特定业务链的管理员分配到任何商店................

我的问题是我在上面的ER图(或应用程序)中处理用户详细信息和登录详细信息的方式

  1. 我应该使用两个单独的实体作为“客户”和“员工”???
  2. 我应该使用一个实体作为“用户”吗?如果是这样,如何处理上述处理emplyees'名册
  3. 的情况

1 个答案:

答案 0 :(得分:2)

我建议您将客户,员工和用户合并为人,并对每个人可能出现的角色使用子类型:

Customers, Employees and Users are Persons ERD

我遗漏了重叠/不相交子集的任何迹象,您可以根据您的要求填写它们。实现不相交的子集需要添加一些额外的类型指示符并检查下表中的约束。

从物理上讲,上图将转换为一组表格,如:

person (person_id PK, first_name, last_name, ...)
user (person_id PK/FK, username, password_hash, ...)
customer (person_id PK/FK, credit_limit, ...)
employee (person_id PK/FK, salary, ...)

这允许任何拥有用户记录的人登录,并且您可以通过加入这些表来轻松找出他们是客户,员工(或两者)。您可以轻松地创建客户或员工特定的关系,例如

outlet_employees (outled_id PK/FK, employee_person_id PK/FK)

其中employee_person_id具有引用employee表中的person_id的FK约束。您还可以根据您的要求制定用户特定关系或一般人员关系