多对多关系如何建表?
问题描述
有这样一个关系需要管理:
有多个app,每个app下有多个标签tag,每个tag有多个user。user可能在app1的tag11、tag12下,也可能在app2的tag21、tag22下。
这种情况下如何建立关系表呢?
附加问题:
像这种构建一个标签系统(数据量比较大),业界一般有什么解决方案?
问题出现的环境背景及自己尝试过哪些方法
尝试了搜索答案,基本都是两个模型多对多的示例,没有这种稍微复杂的问题,想了一会儿也是越想越蒙,可能需要看下不同的建议。
相关代码
无
你期待的结果是什么?实际看到的错误信息又是什么?
期待有个思路或者指点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一个app,会有多个tag
一个tag,可能属于多个app
一个user,会有多个tag
一个tag,可能被多个user拥有
典型的多对多关系,app和tag多对多,user和tag多对多
app和user没有直接联系,不具备业务含义,所以不用想的太复杂
三张实体表
app、tag、user
两张关联关系表
app_tag_rel,字段id(当前表的逻辑主键)、app_id(app表的主键)、tag_id(tag表的主键)
tag_user_rel,字段id(当前表的逻辑主键)、tag_id(tag表的主键)、user_id(user表的主键)
两个模型多对多的示例 就是你问的问题,不过我搜了下他们都是在数据实体bean这一层面说这个问题,与你所求不符.
这个 可以以appid和userid作为联合主键,查询tag
也就是主要有 appid, userid,tag 这三个字段的表
如果相同或不同的app下的tag是不同的,那么可以不考虑app和user之间的关系,tag存appId,user和tag是多对多关系,所以建一个中间表USER_REL_TAG(userId, tagId)保存user和tag的关联关系