![]() |
1
1
每次更改父级时,都会创建子级的副本:如果父级数据更改过多,则会很快耗尽存储空间。此外,将所有子记录更改存储在单个父记录中会导致父记录膨胀(因为有很多子记录往往会膨胀),这可能会影响数据检索的性能。 存储版本化数据有许多不同的方法,但它们分为两类:
在这些方法之间进行选择取决于您希望如何处理历史版本。它们只是为了回滚吗?还是用户会定期浏览更改? 另一个复杂的问题并不总是适用的,但我认为在这里可能是相关的(因为您建议的解决方案),是父母和孩子之间的关系变化:当您显示父母的历史版本时,您需要显示孩子的适当版本吗?反之亦然,如果显示的是旧版本的子级,是否需要显示其父级(和同级)的适当版本? 您需要确定的关键是:大多数用户大部分时间都要做什么?优先考虑。如果最常见的用例是 只查看所有记录的当前版本 然后,您应该使用单独的表来存储版本。 如果您需要记录应用于给定父版本的子版本,那么可以引入一个附加的框架表(父\u id、父\u version、子\u id、子\u version)。当只有一个父级和一个子级的表时,维护此表并不太麻烦。当你有多个孩子的时候,你需要跟踪,这会让你很不舒服。 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |
![]() |
Bioinfotec · 如何在R中将两个嵌套列表合并为一个列表? 5 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
ep84 · Python中处理扩展线性序列的快速(最快)方法 11 月前 |
![]() |
Gerry · python中高效的Merge排序实现 1 年前 |
![]() |
Noel · C#通过引用返回结构导致复制 1 年前 |