mysql表中的多对多关系表_一个表和多个表是多对多的关系,该怎么设计

博主面临一个数据库设计问题,即如何处理应用表与多个素材表之间的多对多关系。当前方案是在每个素材表中添加应用字段,但这导致大量冗余数据。考虑建立一个应用表和多个关联表,通过应用表筛选后再查询关联表获取素材。讨论了不同方案的优缺点,寻求更高效的数据查询策略。
摘要由CSDN通过智能技术生成

最近遇到了一个表和多个表关联的问题,

例如 : 现在有一个应用表 app_table,有很多个素材表 material_table1、material_table2... ,

对每个素材表来说,一个素材可能有多个应用使用,一个应用也可以使用多个素材。每个素材表和应用表都是这种关系,而且每个素材表之间没有任何关联。

显然是多对多,但问题就是如果按照多对多建立表的话,每个素材表都要建立一个中间表。

我现在有个想法,就是在应用表中添加字段,每个素材都添加一个字段,字段中保存着这个 app 所拥有的素材

的 id,按照逗号隔开。但是问题就是这样的话要查询两次,先通过应用表的字段进行筛选,然后再按照条件对查询出来的数据进行筛选。

不知道大家有没有更好的方案和想法,谢谢大家啦

描述的有点不清楚,是每个类别的素材(一个素材表)都做一个接口,只不过素材返回的时候是要根据应用来筛选的,而且存在一个应用使用多个素材(一个素材表中的多个素材),一个素材可能有多个应用使用。现在的状态是每个素材表都添加了一个应用字段来区分,但是这样要添加很多条目进去。所有我考虑要不要做一个应用表,然后每个素材做一个关联表。这样请求的时候可以先根据请求参数的应用名来查到应用表的数据,再根据关联去查到相关素材表中符合条件的数据。

不知道有没有更好的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值