开发者社区> 问答> 正文

数据库结构-具有category_id的单个设计表(许多行)或多个设计类别表(很少的行)

我有一个用于设计多个类别的数据库架构,所有这些类别都具有相同的结构。有两种情况,我不确定要根据性能选择哪一种。

单个表:1个主表(类别),1个设计表(category_id),2个与设计相关的表(标签和颜色)和1个具有label_color关系的表。可能有大约20个类别,每个类别至少100个设计,每个设计至少20个标签和10种颜色。因此,总共有4个表,label_color关系表中的下限约为40万条记录。

多个表:1个主表(类别),每个类别的设计表(category1_designs,category2_designs ...)以及与category1_design和label_color表相关的标签和颜色表,这些表将标签与颜色相关联。使用与以前相同的估计,每个设计有20个类别和4个相关表,需要维护80个表(加上主类别表)。而且,为了从特定类别中获取设计或在特定类别中添加设计,服务器将具有切换案例方案,以便它从正确的类别中获取记录,从而使其具有刚性和硬性编码。另外,添加新类别将意味着手动为该类别创建4个新表。其下限仅为20000行,但分布在20个表中。

我将MySQL数据库与InnoDB引擎一起使用,因此考虑到性能和可伸缩性,哪种方法更适合实现此概念?还要注意,写操作不会很频繁,并且这些表将仅用于读取和覆盖。

展开
收起
几许相思几点泪 2019-12-29 19:47:45 1049 0
1 条回答
写回答
取消 提交回答
  • 搭配1.单(类别)表。这就是我会做的方法,并且已经看过很多次了。使用许多类别表进行非规范化将很难维护,并且需要大量复制/粘贴或生成的字符串查询。

    每个非关联表最多可容纳100行,因此只要您的查询和索引匹配,性能就不会受到影响。

    2019-12-29 19:47:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载