-2

我在构建良好的数据库设计时遇到问题。第 1 条有权限组 1,2,3

用户位于权限组 2 和 4

所以这个用户应该看第1条。但是在这种情况下我可以设计一个不使用OR的sql吗?

如果有数百万篇文章,那么使用 OR 将不会很好。

标签文章 Articleid 名称

表权限 Id Articleid PermissionGroup

表 userpermission Id Userid Permissiongroup

像这样的东西。

4

1 回答 1

1

使用您提供的有限详细信息很难准确判断您要做什么,但您应该能够JOIN通过表格了解用户是否可以访问文章:

select u.username,
  p.articleId
from users u
inner join userpermission up
  on u.userid = up.userid
inner join permissions p
  on up.permissiongroup = p.permissiongroup
inner join articles a
  on p.articleid = a.articleid

使用 JOIN 您将根据权限返回用户和他们可以访问的文章。

于 2013-02-10T19:18:16.307 回答