【发布时间】:2011-03-18 17:13:23
【问题描述】:
我正在尝试编写“撤消”或“回滚”类型的场景。我的一部分认为我把这个复杂化了,它之前一定已经解决了。
背景:我有一个产品(例如一本书),该产品有 20 个字段。产品有一种媒体类型(PDF、硬拷贝、EPUB),每种媒体类型都有多种定价(价格、位置,即欧洲、亚洲、美洲)。
查看之前的问题,memento pattern 似乎是最接近的,但我不确定如何做多层次。
例如,Change 1 - 创建产品“Coding for Dummies”,提供硬拷贝,在欧洲售价 100 美元,在亚洲售价 75 美元
更改 2 - 将欧洲硬拷贝价格更改为 90 美元。添加 PDF,欧洲 90 美元,亚洲 75 美元
更改 3 - 删除硬拷贝记录
更改 3 出错,我想回滚到更改 2。
Lookingatpreviousquestions,Mementopattern 似乎是最接近的,但我会复制大量数据。即在更改 2 和 3 中,您正在重复产品、媒体和定价。
我使用的数据集有近 1,000,000 种产品。 (上面的例子是简化的)实际上一个Product大约有50个字段,Media Type大约有15个字段
有没有更好的办法?
【问题讨论】:
标签: database design-patterns undo