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