【发布时间】:2012-06-26 14:12:54
【问题描述】:
我有一个“服务”表,用于详细说明我们提供的服务。需要记录的数据中有几个小的一对多关系(都具有对 service_id 的外键约束),例如:
service_owners -- user_ids responsible for delivery of service
service_tags -- e.g. IT, Records Management, Finance
customer_categories -- ENUM value
provider_categories -- ENUM value
software_used -- self-explanatory
我遇到的问题是我想保留对服务的更新历史记录,为此我在表上使用了更新触发器,该触发器执行插入到与原始列匹配的历史记录表中。但是,如果对上述数据使用标准化方法,为每个一对多关系使用单独的表和外键,则对这些表的任何更新都不会在服务历史记录中被识别。
有人有什么建议吗?似乎我需要将子密钥存储在服务表中以保持服务历史记录的完整性。分隔文本字段在这里是一种有效的方法吗?或者,当我使用 postgreSQL 时,也许数组也是一种有效的选择?不过这些感觉有点脏!
谢谢。
【问题讨论】:
-
您的历史表不必进行规范化。为了成为真实的历史记录,它必须包含写入历史记录行时类别中的值。
标签: postgresql database-design one-to-many