首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL如何存储数据+访问权限

MySQL如何存储数据+访问权限
EN

Stack Overflow用户
提问于 2010-10-11 13:44:44
回答 1查看 114关注 0票数 0

最近,我遇到了一个问题,我只能想到泥泞的解决方案。

假设一个表有几个对象(让我们说照片使它更容易)。每个照片/对象都必须有自己的权限集.

上传者必须始终看到照片。

2-照片属于一组照片,所有访问该组的用户都可以看到它。

3-照片可以被关闭和私密。

4-照片可以是“授权的”特定用户。

5-照片可以“拒绝”特定用户。

用户和照片组都将增长到中等大小。

我不是来找SQL详细查询的。只是希望有人能给我指明正确的方向。

EN

回答 1

Stack Overflow用户

发布于 2010-10-11 14:20:44

我想指出的是,我在优化SQl方面没有太多经验,所以我的答案可能会给服务器带来太多的负担。

我会选择一个表,比如photo_permission,它将包含每个用户id的user _id和授权照片_id之间的映射。类似于:

代码语言:javascript
复制
| user_id | photo_id |
| 1       | 1        |
| 1       | 3        |
| 2       | 1        |
| 2       | 2        |

如果有id user_id的特定用户的记录和id photo_id的特定照片,则用户有查看照片的权限。

如果无法阻止访问包含照片的组的用户的照片,甚至可以简化上表。

代码语言:javascript
复制
| authority_id | authority_type | photo_id |
| 1            | group          | 1        |
| 1            | user           | 3        |
| 2            | user           | 1        |
| 2            | group          | 2        |

现在,您可以用authority_type用户检查用户的id是否列在行上,也可以检查他的id在authority_type组的行上是否为IN (SELECT id FROM user where group_id=authority_id)。请注意,上面的代码没有经过测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3906783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档