次のシナリオ: 現在、結合などを使用して MySQL で複雑なアクセス許可システムを構築しようとしています。そのほとんどは魅力のように機能しますが、今の問題は次のとおりです。
まず、テーブルのセットアップ: (外部リンクで申し訳ありませんが、現時点ではエディターが機能していないようです)。
表: http://pastebin.de/36727 データ: http://pastebin.de/36726
わかった:
ユーザーは、グループのメンバーになることで権利を取得します。(それはうまくいきます!)
だから、しかし今、私はユーザーに特別な権利を提供できるようにしたい(グループには含まれていない)
どうすればそれができますか?それは私の試みです(しかし、問題は、特別な権利が存在する場合、結果に返されないことです):
SELECT DISTINCT
`user`.`username`,
`right`.`name`
FROM
`user`
INNER JOIN
`user_group` ON
`user`.`id` = `user_group`.`user_id`
INNER JOIN
`group` ON
`user_group`.`group_id` = `group`.`id`
INNER JOIN
`group_right` ON
`group`.`id` = `group_right`.`group_id`
INNER JOIN
`right` ON
`group_right`.`right_id` = `right`.`id`
LEFT JOIN
`user_right` ON
`user_right`.`user_id` = `user`.`id` AND
`user_right`.`right_id` = `right`.`id`
WHERE
`user`.`username` = 'Domi'
私の英語はそれほど上手ではないので、私が何を意味するか知っていただければ幸いです。