【发布时间】:2013-12-17 22:20:38
【问题描述】:
关于表设计和审计更改的争论一直围绕着工作展开。我们有一个包含我们销售的卡车的库存表。该表包含里程、位置、价格和库存日期等列。
数据库是 OLTP,因此当库存商品发生变化时,会进行大量读取和更新。
我很高兴不使用该表并让影子表审核任何插入和更新。但是,建议将大部分库存列移动到单独的表格中,并将这些表格变成缓慢移动的维度
我个人更喜欢一行中的所有数据。加入 10 张桌子以恢复一个股票记录似乎很麻烦。而且更新会很痛苦,因为您必须检查每个属性是否已更改其值,如果已更改则进行插入并更新最后的属性条目结束日期。这对性能没有好处,是吗?
如果您想要达到那种级别的审计,不理会表并将数据移动到 OLAP,这不是更好吗?
【问题讨论】:
-
我会首先专注于通过审核来规范化表格,而不是推动你如何做到这一点。一旦你把它标准化,你就可以创建触发器和程序来包装你的审计逻辑,它们会像拼图一样组合在一起,并随着时间的推移向外扩展。通常,在 OLTP 中,除非您有一些极端情况需要这样做,否则您不会立即士气低落。您是否遇到过规范化设计的性能问题,不是吗?然后保持标准化。
标签: sql-server database-design