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テーブルにも同様の制限が必要です。だから私は作成しました..

    ディスカッション

    Discussion_id、discussion_title

    Discussion_Users

    Discussion_Id、User_id

    Discussion_Organisations

    Discussion_Id、Organisation_id

ご覧のとおり、同様のテーブルを作成する必要があります。これらすべての製品、カテゴリ、またはその他の新しいテーブルに対して、1つの主要なアクセス許可テーブルを作成できると思いますか?

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 に答える