1
1
是否确实需要保存此快照中每个实体的全部内容?如果是这样的话,一组名为type_snapshot的表可能会有所帮助。您可以将实体保存到此表中(仅插入,从不更新)。您可以存储原始项的标识符,并为快照本身生成一个新的标识符。您可以在每个快照中保存时间戳。您的项目快照表如下所示:
在您的域中,也许您可以使用快照实例(包含ID和快照日期的快照,以及T的实例) 它可能并不理想,因为它将引入第二组映射,但它是一种到达目标位置的方法。似乎您最好在数据库引擎附近做些事情,但如果不知道这些快照的想法(从应用程序的角度),就很难说了。 |
2
0
最后,我使用快照ID列来扩充我的实体,并将条目复制到表中的相应位置。结合一个过滤器,我可以从任何给定的快照中进行选择。必须对遗留代码进行一些修补,但基本上可以工作。 |
3
0
最后,我们创建了一个重复的表,并为快照添加了一个timestamp类型的额外列。使主表上的索引变小,因为我们有1000多万行,所以在同一个表中添加版本将创建更多记录。同时在不同的表空间(mssql上的db文件)中版本表 |
Nico Pizzo · 子查询上的nhibernate联接 6 年前 |
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 6 年前 |
Stu · 具有特定类型的字符串外键的NHibernate映射 6 年前 |
Zout · 为Hibernate的HiLo算法管理的列生成ID 7 年前 |