我希望仅限某些类别的用户访问某些类别。
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
我的问题是 -
我想要Discussions
表的类似限制。所以我创造了..
讨论
Discussion_id,discussion_title
Discussion_Users
Discussion_Id,User_id
Discussion_Organisations
Discussion_Id,Organisation_id
正如您所看到的,我必须创建类似的表 - 您认为我可以为所有这些产品,类别或任何其他新表创建一个主权限表吗?
答案 0 :(得分: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')