现业务需求共有5张表
role(角色表)、tag(标签表)、role_tag(角色标签表)、file(文件表)、file_tag(标签文件表)
其中 角色和标签为多对多关系、文件与标签为多对多关系
标签表 为动态维护的树形结构
标签文件表大体结构:
业务需求:根据选择的标签条件(多选)同时符合条件(and关系)筛选需要的文件
有没有什么好的设计方案,按照现在这种结构感觉很笨重。而且数据量大的情况下很慢。
mysql数据库设计问题,优化改进
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 憧憬blog 2023-03-15 03:45关注
对于这个数据库设计问题,建议可以考虑进行以下优化:
对于标签表的动态维护的树形结构,可以使用父子关系模型进行存储和查询,这样可以方便地查询某个标签的所有子标签信息,从而提高查询效率。
对于业务需求中根据选择的标签条件(多选)同时符合条件(and关系)筛选需要的文件,可以通过对标签文件表进行联合查询来实现。具体地,可以先获取所有符合条件的标签列表,然后根据标签列表进行联合查询,以获取文件表中符合条件的文件信息。为了提高查询效率,可以建立标签文件表的复合索引,加速查询过程。
可以考虑将表中数据进行分片存储,减少单个表的数据量,从而优化查询性能。
总之,要做出高效的数据库设计,需要充分考虑业务需求,选择合适的存储方案和查询策略,合理建立索引等。同时,定期进行数据库优化,清理冗余数据等操作,也可以有效地提高数据库性能。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 使用vofa上位机justfloat协议,有数据采集,但是没有波形
- ¥15 将两文件中相同行数行 打印至同一行
- ¥15 关于#单片机#的问题:c51单片机想做个密码重置按键K13不知道如何去做,用了24c02来存储
- ¥20 有没有会python的帮帮我😥
- ¥15 如何修改系统里的设备信息及某某镇某某村如图所示
- ¥15 变数的长度不一样”。是什么原因呢?如何修改?
- ¥15 matlab作业不会写
- ¥15 eclipse mqtt 消息消费问题
- ¥15 vue2(标签-chrome|关键词-浏览器兼容)
- ¥15 python网络流自动生成系统 医学领域