我对DATABASE DESIGN.
Given 遇到了一些麻烦,如下表:
group_id | right_id | mode
----------------------------
1 | 1 | edit
----------------------------
1 | 2 | edit
----------------------------
3 | 1 | read
----------------------------
3 | 3 | read
----------------------------
1 | 3 | edit
----------------------------
4 | 3 | denied
----------------------------
现在我需要例如第 1 组和第 3 组的所有权限。为了防止出现双重结果,我想按 right_id 对结果进行分组问题是模式列。正如您可能建议的那样,该模式决定您是否可以阅读或编辑某些内容(或没有“拒绝”)
我希望在最终结果中使用最高权限,第 1 组和第 3 组权限的结果应如下所示:
right_id | mode
----------------------------
1 | edit
----------------------------
2 | edit
----------------------------
3 | edit
----------------------------
必须覆盖第 3 组的读取模式。
我完全不知道如何解决这个问题。我可以在 php 中进行此操作,但如果可能的话,我希望在一个查询中进行此操作。
如果没有条件组,选择哪种模式似乎完全随机。
除了 mode 是一个枚举值
'denied', 'read', 'edit'
附言
我已经阅读了上面几乎所有建议的链接,但它们都没有帮助:(
到目前为止感谢!:)