如何比较多个表的查询结果?

时间:2014-07-25 12:09:04

标签: mysql sql

我有3个表,User,AccessControlKey和AccessControlGroup。用户可以分配到多个产品。 AccessControlKeys可以分配给多个AccessControlGroups。但是,用户不能多次为其分配AccessControlKey,即对于分配给他的多个AccessControlGroup中的用户,AccessControlKey必须在分配给他的AccessContolGroup中是唯一的。

对于accesscontrolkeys和user之间的多对多关系以及accesscontrolkeys和accesscontrolgroups之间的多对多关系,我有两个单独的表。以下是3个表和关系映射表的表描述。如何为用户跨多个AccessControlGroup强制执行唯一的AccessControlKey?

http://pastebin.com/EzL9QUGg

1 个答案:

答案 0 :(得分:0)

根据您的说明,我猜测每个User只有一个AccessControlKey,并且密钥可以属于多个AccessControlGroup

我可能会更改数据结构并将您的User_BelongsTo_AccessControlGroup更改为User_AccessControlKey(将User更改为AccessControlKey);你可以在这里强制执行唯一性。您仍然可以通过此表和User访问AccessControlGroup AccessControlKey_BelongsTo_AccessControlGroup