【发布时间】:2016-08-14 02:01:03
【问题描述】:
假设我有一个包含 report_type 列的表,而我只有 2 种报告类型。用它们创建一个report_types 表,然后用该表的外键引用它是否值得?或者将报告类型作为字符串存储在该列中是否可以接受?
【问题讨论】:
-
取回后字段的值你在做什么?
-
@Joe:没什么,只是用来过滤的。
假设我有一个包含 report_type 列的表,而我只有 2 种报告类型。用它们创建一个report_types 表,然后用该表的外键引用它是否值得?或者将报告类型作为字符串存储在该列中是否可以接受?
【问题讨论】:
只要有可能,您应该始终计划规范化您的数据库并抽象您的代码。但是,您执行此操作的次数越多,您在系统中获得的“间接”就越多。更好的问题是,您在规范化表格方面会产生多少开销,而在未来重新设计代码的成本方面。
在这种情况下,我几乎可以肯定地说值得您花时间标准化数据库。
【讨论】:
需要考虑的事项:
我知道现在建一个表似乎有点矫枉过正,只容纳两行。坦率地说,如果您决定坚持使用列和检查约束,Yagni 的神将支持您。但是,如果您已经有一堆代码查找表来强制执行受限值集,那么一致性也很有价值。
【讨论】:
如果您打算继续扩展的话。我认为真正的问题是,不值得多做一张桌子吗?
【讨论】:
我通常会建议对您的数据进行规范化,但这似乎是一个足够简单的案例,您可能不会从中看到太多好处。正如您所说,您仅使用该字段进行过滤,因此只需要使用数据本身中存在的值。
如果您希望用户看到特定报告类型的记录为零,那么您可能需要使用关联的表格。
【讨论】: