代码之家  ›  专栏  ›  技术社区  ›  ryeguy

创建单独的关联表应该有多严格?

  •  0
  • ryeguy  · 技术社区  · 14 年前

    report_type report_types 表,然后用外键引用该表?或者可以将报表类型作为字符串存储在该列中?

    5 回复  |  直到 14 年前
        1
  •  1
  •   APC    14 年前

    需要考虑的事项:

    • 您将来是否可能添加新的报表类型?
    • 您是否有其他表也引用报表类型(例如用于统计数据收集或审计)?
    • 是否需要将其他数据(如详细说明)与报表类型关联?

    Yagni 如果您决定使用列和检查约束,将支持您。但是,如果您已经有一堆代码查找表来强制执行受限制的值集,那么,一致性也是有价值的。

        2
  •  2
  •   Dylan    14 年前

    只要有可能,您应该总是计划规范化您的数据库和抽象您的代码。然而,你做的越多,你在系统中得到的“间接”就越多。更好的问题是,在规范化表的过程中,您将花费多少开销,这是工作量与进一步重新设计代码的成本之比。

        3
  •  0
  •   Chris    14 年前

    如果你打算继续扩张的话。我想真正的问题是,多做一张桌子不值得吗?

        4
  •  0
  •   Joe Phillips    14 年前

    我通常会建议您规范化数据,但这似乎是一个足够简单的案例,您可能不会从中看到太多好处。正如您所说,您只使用字段进行过滤,因此只需要使用数据本身中的值。

    如果您想让用户看到某个特定报告类型没有记录,那么您应该使用关联的表。

        5
  •  0
  •   Damir Sudarevic    8 年前

    如果所有报表都设置了相同的列,但您使用报表类型只是为了加快筛选速度,那么您只需使用:

    report_model_v1

    如果有一些额外的列与 ReportType ReportTypeDescription --然后使用:

    report_model_v2

    Col1 , Col2 , Col3 )然后每种类型都有很少的特定列( Type1_Col1 , Type1_Col2 Type2_Col1 , Type2_Col2 )--然后使用:

    report_model_v3