我正在尝试为系统找出最佳的数据库/数据架构方法,我需要更改原始的“低级”表,理想情况下,自动传播基于底层数据存储视图的各种不同的表。 / p>
让我举一个简化的例子。
想象一下,我有以下表格:
现在想象一下,我有工人外出并按小时更新表(1)的值。是否有数据库设计或体系结构会强制更新表2中依赖于表1中更改的内容的任何条目,同样会将更改传播到表3和表4.我想这可以通过代码实现一系列级联工作,但我想知道是否有一种不太复杂和更优雅的方式。
感谢您的帮助。
答案 0 :(得分:2)
看起来非常适合CQRS pattern。存储项目时,您应该只有一个数据源。
来自链接文章:
CQRS代表Command Query Responsibility Segregation。这是我第一次听到Greg Young描述的模式。其核心是一个简单的概念,即您可以使用不同的模型来更新信息,而不是用于读取信息的模型。
CQRS可以帮助您接收一种信息(更新模型),然后将其转换为您可以查询的内容(读取/查询模型)。
答案 1 :(得分:2)
我认为'优雅的方式'是正确地规范你的桌子。
例如,你不会有一个表用于Safeway,另一个表用于沃尔玛等 - 相反,你将有一个用于'零售商'的表,它将列出Safeway和沃尔玛, 然后在“产品”的一个表中列出鸡蛋,番茄酱等 然后是第三个,比如说'retail_item',它列出了retailer_id,product_id,price等。然后您可以简单地查询您提出的所有问题......