查询过滤器权限

时间:2015-10-06 00:14:31

标签: mysql sql database performance

我需要一些MySQL查询的帮助。 学生可以获得从他所属的一个团体或个人许可中借书的权限。这些书也与团体有关。

我希望能够以一种执行的方式获得所有书籍,学生可以根据他的权限或团体许可获得。另外如何从一个或多个groupID过滤?

请注意,如果图书不在权限表中,则表示它适用于所有人

以下是数据库架构的示例。

--table book--
bookID     name      

--table group--
groupdID     name

-- table student --
studID    name

-- table group_book --
bookID     groupID

-- table student_group--
groupdID     studID

-- table student_book_permission --
bookID     studID

-- table group_book_permission --
bookID     groupID

感谢您的帮助和时间

1 个答案:

答案 0 :(得分:0)

string input = Console.ReadLine();

学生可以访问的书籍列表由2个查询组成。最高查询获取学生个人许可的书籍列表。底部查询根据组权限列出书籍。 Union distinct确保书籍只在列表中显示一次。