gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:25 24 4
gpt4 key购买 nike

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

  1. 单表:1 个主表(类别)、1 个设计表 (category_id)、2 个与设计相关的表(标签和颜色)和 1 个具有 label_color 关系的表。可能有大约 20 个类别,每个类别至少 100 个设计,每个设计至少 20 个标签和 10 种颜色。所以一共4张表,label_color关系表的下界约40万条记录。

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

我正在使用带有 InnoDB 引擎的 MySQL 数据库,所以考虑到性能和可扩展性,哪种方法更适合实现这个概念?另请注意,写入操作不会频繁,并且这些表将仅专门用于读取和可能覆盖。

最佳答案

使用 1. 单个(类别)表。这是我会做的方式,并且已经看到它做了很多次。使用许多类别表的反规范化将难以维护,并且需要大量复制/粘贴或生成的字符串查询。

每个非关联表最多 100 行,只要您的查询和索引匹配,性能就不是问题。

关于mysql - 数据库结构 - 具有 category_id 的单个设计表(多行)或多个设计类别表(几行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59517413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com