Sql 主键和复合唯一索引行为
我正在做一个小小的定制会员系统,我遇到了一些问题。我有这些表格用户、角色、应用程序、成员 我想这样做: 使用者 在多个应用程序中是同一用户,尽管用户名不同 角色 多个应用程序中的角色相同 使用userid/roleid主键和userid/roleid applicationid复合唯一索引,我知道系统不允许我在两个应用程序中创建用户 我曾尝试使用复合主键,但在创建正确的FKs之后,我感到头痛,因为成员资格表也需要识别应用程序。一个用户可以拥有多个应用程序的多个凭据Sql 主键和复合唯一索引行为,sql,sql-server,membership,composite-primary-key,Sql,Sql Server,Membership,Composite Primary Key,我正在做一个小小的定制会员系统,我遇到了一些问题。我有这些表格用户、角色、应用程序、成员 我想这样做: 使用者 在多个应用程序中是同一用户,尽管用户名不同 角色 多个应用程序中的角色相同 使用userid/roleid主键和userid/roleid applicationid复合唯一索引,我知道系统不允许我在两个应用程序中创建用户 我曾尝试使用复合主键,但在创建正确的FKs之后,我感到头痛,因为成员资格表也需要识别应用程序。一个用户可以拥有多个应用程序的多个凭据 如果可能的话,最好的方法是什么
如果可能的话,最好的方法是什么?什么将用户与角色联系起来?一个用户属于几个角色?对于某个应用程序,用户始终具有相同的角色?这两个实体之间有什么样的关系,这些信息存储在哪里?有另一个表userinroles,或多或少像asp.net membership,但我需要不同应用程序之间的用户关联。一个用户可以有多个角色,用户可以在多个应用程序中有多个角色相同或不同-。usersinroles明显地存储了1到多个用户和角色之间的关系。成员资格表如何/为什么需要识别应用程序也会让制定正确的FKs感到头痛?成员资格表中的一行是什么样子的&表示什么意思?另外,re不允许我在两个应用程序中创建用户您的意思是,在一个应用程序中两次使用相同的用户id吗?
|UserId | ApplicationId | Username | ...
|1 | 1 | abc | ...
|1 | 2 | abcd | ...
|RoleId | ApplicationId | rolename | ...
|1 | 1 | xxx | ...
|1 | 2 | xxx | ...