Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 主键和复合唯一索引行为_Sql_Sql Server_Membership_Composite Primary Key - Fatal编程技术网

Sql 主键和复合唯一索引行为

Sql 主键和复合唯一索引行为,sql,sql-server,membership,composite-primary-key,Sql,Sql Server,Membership,Composite Primary Key,我正在做一个小小的定制会员系统,我遇到了一些问题。我有这些表格用户、角色、应用程序、成员 我想这样做: 使用者 在多个应用程序中是同一用户,尽管用户名不同 角色 多个应用程序中的角色相同 使用userid/roleid主键和userid/roleid applicationid复合唯一索引,我知道系统不允许我在两个应用程序中创建用户 我曾尝试使用复合主键,但在创建正确的FKs之后,我感到头痛,因为成员资格表也需要识别应用程序。一个用户可以拥有多个应用程序的多个凭据 如果可能的话,最好的方法是什么

我正在做一个小小的定制会员系统,我遇到了一些问题。我有这些表格用户、角色、应用程序、成员

我想这样做:

使用者

在多个应用程序中是同一用户,尽管用户名不同

角色

多个应用程序中的角色相同

使用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      | ...