假设您是 GM dba,您必须围绕 GM 模型进行设计
这样做更好吗?
- 表模型
- {凯迪拉克、土星、雪佛兰}
或这个?
- table_cadillac_model
- table_saturn_model
- table_chevrolet_model
假设业务线对于模型具有相同的列,并且每个子类型有超过一百万条记录。
编辑:
- 有很多 CRUD
- 有很多处理器密集型报告
- 在任一模式中,都有一个 model_detail 表,其中包含每个模型的 3-5 条记录,并且每个模型的详细信息不同(您不能将凯迪拉克详细信息添加到土星模型)
- 开发团队对数据库复杂性没有任何问题
- 我不太确定这是一个标准化问题。即使结构相同,它们也可能被认为是不同的实体。
编辑:
将结构划分为多个表的原因 - 业务线可能对部分有不同的业务规则 - 每个业务线的 addModelDetail() 可能不同(即使数据格式相同) - 高添加/更新活动 - 分区性能更好结构而不是单一结构(我在这里猜测并且不确定)?
我认为这是 EAV 问题的一种变体。当作为 EAV 设计提出时,单表结构通常被认为是一个坏主意。当以这种方式提出时,单表结构通常被认为是一个好主意。有趣的...
我认为最有趣的答案是有两种不同的结构——一种用于 crud,一种用于报告。我想我会尝试用于报告的连接/扁平视图和用于 crud 的多个表,看看它是如何工作的。