UserRoles表没有PK

时间:2018-02-27 21:25:25

标签: sql-server database-schema composite-primary-key

我有以下表格(其中包括):

  1. 用户
  2. 部门
  3. 角色
  4. 的UserRole
  5. UserRoles表格包含以下字段:

    1. 用户ID
    2. 角色ID
    3. DepartmentId(NULL)
    4. 这里的想法是我可以为用户提供特定角色,对于特定部门,如果DepartmentId为NULL,则此角色适用于所有部门。

      此处的问题我无法在UserRoles表中的三个字段中创建复合主键,因为DepartmentId可以为空。

      我是否应该使用没有主键的唯一索引,因为我不能只为前两列创建主键(这将阻止用户与多个部门具有相同的角色),或者我应该更改整个结构到其他东西(任何想法将不胜感激)。

1 个答案:

答案 0 :(得分:0)

我会使DepartmentID不为null并指定值0以表示所有部门。这将有助于您创建PK和查询,现在您可以简单地说出DepartmentID = 0而不是DepartmentID为null的位置。