0

我想将某些类别的访问权限仅限于某些组织的用户。

User
User_id, Username, Organisation_id

Organisation
Organisation_id, Org_name

Category
Category_id, Cat_name


Category_Organisation
Category_id, Organisation_id

所以我的查询变成了这样-

SELECT * FROM category c 
INNER JOIN category_organisation co ON co.category_id = c.category_id 
AND co.organisation_id = 'LOGGED_IN_USERs_ORGANISATION_ID'

如果我要添加一个例外,即也允许一些用户,那么我有这个表

Category_user
Category_id, User_id 

我的问题是——

  1. 如何在此处进行 OR 搜索,以便查询返回属于给定组织 ID 或给定用户 ID 的类别
  2. Discussions我想要对表进行类似的限制。所以我创造了..

    讨论

    讨论_id,讨论_标题

    讨论_用户

    Discussion_Id, User_id

    讨论_组织

    Discussion_Id,Organization_id

如您所见,我必须创建类似的表 - 您认为我可以为所有这些产品、类别或任何其他新表实现一个主要权限表吗?

4

1 回答 1

1

请试试这个:

SELECT * FROM category c 
INNER JOIN category_organisation co ON co.category_id = c.category_id 
AND co.organisation_id = 'LOGGED_IN_USERs_ORGANISATION_ID' OR c.category_id IN( SELECT Category_user.Category_id FROM Category_user WHERE Category_user.User_id = 'LOGGED_IN_USERs_ORGANISATION_ID')
于 2013-03-21T11:12:51.060 回答