我正在做一个小型的自定义会员制度,而且我遇到了问题。我有这些表(用户,角色,应用程序,成员资格)。
我想这样做:
用户
|UserId | ApplicationId | Username | ...
|1 | 1 | abc | ...
|1 | 2 | abcd | ...
"尽管使用了不同的用户名"
,但是多个应用中的用户是相同的角色
|RoleId | ApplicationId | rolename | ...
|1 | 1 | xxx | ...
|1 | 2 | xxx | ...
"在多个应用中扮演相同的角色"
使用userid / roleid主键和userid / roleid-applicationid复合唯一索引我知道系统不允许我在两个应用程序中创建用户。
我尝试使用复合主键,但在制作正确的FK之后会感到头痛,因为会员表也需要识别应用程序(一个用户可以为多个应用程序提供多个凭据)。
最好的方法是什么,如果可能的话?