角色表
RoleID Desc
1 primary
2 secondary
3 alternate
用户
UserID Name
1 ann
2 saylor
3 jim
4 ken
5 kathy
路由表
RouteID Name
1 x
2 y
RouteRoleUser 表
RouteID RoleID UserID
1 primary ann
1 secondary saylor
1 alternate jim
1 alternate ken
1 alternate kathy
我有一个显示以下内容的网格:
Route | Primary Pumper | Secondary Pumper | Alternate Pumpers (comma separated)
x ann saylor jim, ken, kathy
我的要求是:
- 任何路线只能有一个主要用户
- 任何路由都可以有 0 个或一个辅助用户
- 任何路由都可以有 0 个或多个备用用户
- 路线的所有用户都是唯一的
如何从 RouteRoleUser 表中的数据库设计角度获得需求限制?目前,如果我将 Route、Role 和 User 作为候选键,它不会阻止任何人为路由添加两个主要用户。
有没有更好的办法?