【问题标题】:Table design in a OLTP databaseOLTP 数据库中的表设计
【发布时间】:2013-12-17 22:20:38
【问题描述】:

关于表设计和审计更改的争论一直围绕着工作展开。我们有一个包含我们销售的卡车的库存表。该表包含里程、位置、价格和库存日期等列。

数据库是 OLTP,因此当库存商品发生变化时,会进行大量读取和更新。

我很高兴不使用该表并让影子表审核任何插入和更新。但是,建议将大部分库存列移动到单独的表格中,并将这些表格变成缓慢移动的维度

我个人更喜欢一行中的所有数据。加入 10 张桌子以恢复一个股票记录似乎很麻烦。而且更新会很痛苦,因为您必须检查每个属性是否已更改其值,如果已更改则进行插入并更新最后的属性条目结束日期。这对性能没有好处,是吗?

如果您想要达到那种级别的审计,不理会表并将数据移动到 OLAP,这不是更好吗?

【问题讨论】:

  • 我会首先专注于通过审核来规范化表格,而不是推动你如何做到这一点。一旦你把它标准化,你就可以创建触发器和程序来包装你的审计逻辑,它们会像拼图一样组合在一起,并随着时间的推移向外扩展。通常,在 OLTP 中,除非您有一些极端情况需要这样做,否则您不会立即士气低落。您是否遇到过规范化设计的性能问题,不是吗?然后保持标准化。

标签: sql-server database-design


【解决方案1】:

我看不出仅仅为了审计目的而非规范化你的表有什么意义。

您可能想研究变更数据捕获,看看它是否可以在不进行进一步重大更改的情况下解决您的问题:

http://technet.microsoft.com/en-us/library/cc280519(v=sql.105).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    相关资源
    最近更新 更多