开发者社区> 问答> 正文

关系型数据库一对多关系数据表如何设计更好

关系型数据库[如Mysql],一对多关系,如用户id=1,该用户可以同时属于不同的分组[group_id=1,group_id=2],这时的数据库表该如何设计合理呢,我目前是这样的,user关系表,每一个分组占用一条数据
1
这样的设计在新建一个分组的时候插入新的对应关系行,如果取消一个分组则要删除相应的一行数据,感觉这种方式很不好。想改进但脑袋又是空白的,想请教下大家对这类问题的设计思路是怎样的。

展开
收起
蛮大人123 2016-02-08 10:55:16 3263 0
2 条回答
写回答
取消 提交回答
  • 推荐回答:

    可以建立两张表:user和group表,group表含有外键user_id;但是感觉group中应该不可能只有一个user吧?如果含有多个user,就是一个多对多关系,可以建立三张表:user,group表分别记录两个对象对应的属性,而第三张表记录两者的关系,一般是含有属性(id, user_id, group_id).

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官网(新用户需注册查看),可领上云红包

    2021-07-08 18:20:11
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    可以建立两张表:user和group表,group表含有外键user_id;但是感觉group中应该不可能只有一个user吧?如果含有多个user,就是一个多对多关系,可以建立三张表:user,group表分别记录两个对象对应的属性,而第三张表记录两者的关系,一般是含有属性(id, user_id, group_id).

    2019-07-17 18:39:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
最流行的关系型数据库 是如何在云端打造的 立即下载
阿里云认证的解析与实战-关系型数据库ACP认证 立即下载
面向应用的反范式化数据建模 立即下载