役割表
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
私の要件は次のとおりです。
- どのルートにも、プライマリユーザーを1人だけ含めることができます
- どのルートにも0人または1人のセカンダリユーザーを含めることができます
- どのルートにも0人以上の代替ユーザーを含めることができます
- ルートのすべてのユーザーは一意です
RouteRoleUserテーブルのデータベース設計の観点から要件を制限するにはどうすればよいですか?現在、ルート、ロール、およびユーザーを候補キーとして作成しても、ルートに2人のプライマリユーザーを追加することは誰にも止められません。
もっと良い方法はありますか?