GreatSQL社区

搜索

[已解决] 权限+类别关联的问题

793 3 2022-12-8 16:55
本帖最后由 langfeijiu2 于 2022-12-8 17:02 编辑

请问各位大佬,当前场景
逻辑关系是   用户  1:N  权限(包含类别)  1:N   编号



左边包含编号的表,随时间越长,数据量也不小,类别还不能拆分,也就是说像用户和编号的交集的意思


如图是需要某个账户拥有左边编号的所有权限,因为包含所有编号拥有的类别,看这种场景mysql有没有高效的办法去关联下?
类别优化.png
全部回复(3)
yejr 2022-12-8 17:15:31
用二进制表示,例如
class1 => 1
class2 => 2
class3 => 4
class4 => 8
以此类推。。。

拥有哪个权限,就直接相加。
例如,拥有权限 class3 & class4,则得到结果 12。
判断是否拥有权限时:
  1. -- 没有1、2 两种权限
  2. select 1&12, 2&12;
  3. +------+------+
  4. | 1&12 | 2&12 |
  5. +------+------+
  6. |    0 |    0 |
  7. +------+------+

  8. select 4&12, 4&12; -- 拥有4、8两种权限
  9. +------+------+
  10. | 4&12 | 8&12 |
  11. +------+------+
  12. |    4 |    8 |
  13. +------+------+
复制代码
langfeijiu2 2022-12-9 12:23:35
yejr 发表于 2022-12-8 17:15
用二进制表示,例如
class1 => 1
class2 => 2

但是类别多了,存二进制数值,也好像存不下那么多
yejr 2022-12-9 12:54:45
langfeijiu2 发表于 2022-12-9 12:23
但是类别多了,存二进制数值,也好像存不下那么多

那就改成0101这种格式,变通下。
langfeijiu2

2

主题

0

博客

13

贡献

新手上路

Rank: 1

积分
20

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-11-23 19:22 , Processed in 0.022757 second(s), 18 queries , Redis On.
快速回复 返回顶部 返回列表