关系型数据库[如Mysql],一对多关系,如用户id=1,该用户可以同时属于不同的分组[group_id=1,group_id=2],这时的数据库表该如何设计合理呢,我目前是这样的,user关系表,每一个分组占用一条数据
这样的设计在新建一个分组的时候插入新的对应关系行,如果取消一个分组则要删除相应的一行数据,感觉这种方式很不好。想改进但脑袋又是空白的,想请教下大家对这类问题的设计思路是怎样的。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
没有看懂你这张表,你的分组中只能有一个user么?如果是这样的话,可以建立两张表:user和group表,group表含有外键user_id;
但是我感觉group中应该不可能只有一个user吧?如果含有多个user,就是一个多对多关系,可以建立三张表:user,group表分别记录两个对象对应的属性,而第三张表记录两者的关系,一般是含有属性(id, user_id, group_id).
如果分组不多,可以采用位运算,类似于linux的权限系统
详细见
利用mysql位运算实现一对多数据关系
mysql位运算