现业务需求共有5张表
role(角色表)、tag(标签表)、role_tag(角色标签表)、file(文件表)、file_tag(标签文件表)
其中 角色和标签为多对多关系、文件与标签为多对多关系
标签表 为动态维护的树形结构
标签文件表大体结构:
业务需求:根据选择的标签条件(多选)同时符合条件(and关系)筛选需要的文件
有没有什么好的设计方案,按照现在这种结构感觉很笨重。而且数据量大的情况下很慢。
mysql数据库设计问题,优化改进
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 憧憬blog 2023-03-15 03:45关注
对于这个数据库设计问题,建议可以考虑进行以下优化:
对于标签表的动态维护的树形结构,可以使用父子关系模型进行存储和查询,这样可以方便地查询某个标签的所有子标签信息,从而提高查询效率。
对于业务需求中根据选择的标签条件(多选)同时符合条件(and关系)筛选需要的文件,可以通过对标签文件表进行联合查询来实现。具体地,可以先获取所有符合条件的标签列表,然后根据标签列表进行联合查询,以获取文件表中符合条件的文件信息。为了提高查询效率,可以建立标签文件表的复合索引,加速查询过程。
可以考虑将表中数据进行分片存储,减少单个表的数据量,从而优化查询性能。
总之,要做出高效的数据库设计,需要充分考虑业务需求,选择合适的存储方案和查询策略,合理建立索引等。同时,定期进行数据库优化,清理冗余数据等操作,也可以有效地提高数据库性能。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
- ¥20 matlab yalmip kkt 双层优化问题
- ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
- ¥88 实在没有想法,需要个思路
- ¥15 MATLAB报错输入参数太多
- ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
- ¥15 有赏,i卡绘世画不出
- ¥15 如何用stata画出文献中常见的安慰剂检验图