我有以下表格:
items id, principaluri, title
principals id, uri, name
members principal_id, member_id
items principaluri 是对 principals uri 字段的引用。members 表定义主体之间的关系,意味着主体的成员可以访问主体 ID 中的项目。选择如何获取主体的所有项目?
为了获得会员资格,我做
SELECT p.*
FROM principals p
LEFT JOIN members m ON m.principal_id = p.id
WHERE p.id = m.principal_id and p.uri = 'myuri'
但现在我需要从列表中获取所有项目。
- - 更新 - -
在主体表中,我也有类似的记录
20, 'principals/admin', 'main account'
21, 'principals/admin/read', 'read access'
22, 'principals/admin/write', 'write access'
30, 'principals/test', 'main account'
31, 'principals/test/read', 'read access'
32, 'principals/test/write', 'write access'
成员表如下所示:
21,30
22,30
这意味着用户 test 对 admin 用户的项目具有读写权限。
但在项目表中,我有如下条目:
100, 'principals/admin', 'Foo'
101, 'principals/admin', 'Bar'