我正在尝试为系统找出最佳的数据库/数据架构方法,在该系统中我需要更改原始“较低级别”表,以便理想情况下自动传播基于基础数据存储 View 的各种不同表。
让我举一个简化的例子。
假设我有下表:
- 不同超市的各种食品成分和价格表
- 例如。西夫韦餐 table 上有{番茄酱:1.19,黄油:0.99},沃尔玛餐 table 上有{鸡蛋:1.99,黄油:0.79}
- 存储每种成分最便宜位置的表格
- 例如。 {黄油=>沃尔玛:0.79}
- 存储菜谱的表,菜谱价格最便宜(由表 2 中最便宜的原料价格组成)。
- 例如。 {“ketchupy-egg-breakfast => 总计:3.97,配料 => 黄油:0.79,鸡蛋:1.99,番茄酱:1.19
- 一张 table ,其中存储了多种替代食谱中最便宜的早餐食谱。
现在假设我有工作人员外出并每小时更新表 (1) 的值。是否有一种数据库设计或体系结构会强制更新表二中依赖于表 1 中更改的内容的任何条目,并且类似地将更改传播到表 3 和表 4。我想这可以通过代码实现一系列级联工作,但我想知道是否有一种不太复杂且更优雅的方法来做到这一点。
感谢您的帮助。
最佳答案
看起来很适合 CQRS pattern 。存储项目时,您应该只有一个数据源。
来自链接的文章:
CQRS stands for Command Query Responsibility Segregation. It's a pattern that I first heard described by Greg Young. At its heart is a simple notion that you can use a different model to update information than the model you use to read information.
CQRS 帮助您获取一种信息(更新模型),然后将其转换为您可以查询的内容(读取/查询模型)。
关于database - 当您希望对原始表的更改自动传播到汇总表时,最佳数据库设计/架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226386/