架构设计

mso*_*son 0 database schema

假设你是GM dba,你必须围绕GM模型进行设计

这样做会更好吗?

  • table_model
    • 类型{凯迪拉克,土星,雪佛兰}

或这个?

  • table_cadillac_model
  • table_saturn_model
  • table_chevrolet_model

假设业务线对于模型具有相同的列,并且每个子类型有超过一百万条记录.

编辑:

  • 有很多CRUD
  • 有很多处理器密集型报告
  • 在任一模式中,都有一个model_detail表,每个模型包含3-5条记录,每个模型的详细信息不同(您无法将凯迪拉克细节添加到土星模型中)
  • 开发团队对数据库复杂性没有任何问题
  • 我不确定这是一个标准化问题.即使结构相同,它们也可能被认为是不同的实体.

编辑:

将结构划分为多个表的原因 - 业务线可能有不同的业务规则 - 每个业务线的addModelDetail()可能不同(即使数据格式相同) - 高添加/更新活动 - 更好的分区性能结构而不是单一结构(我猜这里不确定)?

我认为这是EAV问题的变种.当作为EAV设计时,单表结构通常被投票为坏主意.当以这种方式提出时,单表格结构通常被投票为一个好主意.有趣...

我认为最有趣的答案是有两种不同的结构 - 一种用于crud,另一种用于报告.我想我会尝试用于报告的连接/展平视图和用于crud的多个表,看看它是如何工作的.

Pau*_*ell 10

绝对是前一个例子.在向产品系列添加新模型时,是否要将表添加到数据库中?