活动历史存储的设计模式

时间:2011-11-04 09:41:22

标签: c# sql design-patterns android-activity history

学习案例

如果我有例如库对象。 图书馆里有书。 每本书都有公共信息,如姓名,日期,......以及其他一些依赖,如Autor,Reseller,....

我有Person对象。 如果有人读了这本书,那么我想把新的记录写入历史。

现在问题是,更好的是:

1)使用Book实体及其依赖项中的所有数据在历史记录中创建静态记录(在这种情况下,如果书籍将被更改,则历史记录将不是实际的)

2) Strore依赖于Book对象(在这种情况下,历史记录将是实际的,但在每个请求中我都必须查看所有依赖项)

我认为书籍会被更改

历史记录将显示在个人资料中。 (此假设响应将答案1 ))

但是应该是基于实际Book数据的历史记录吗?或者历史记录应该包含创建历史记录的信息表格日期?

书籍和人只是例子

1 个答案:

答案 0 :(得分:1)

  

现在问题是,更好的是:

     

1)使用Book实体和的所有数据在历史记录中创建静态记录   他的依赖关系(在这种情况下,如果本书将被更改,那么   历史不会是真实的)

     

     

2)存储对Book对象的依赖(在这种情况下,历史将是   实际上,但在每个请求中我都必须查看所有依赖项)

不确定这里的“实际”是什么意思,但更好的选择是适合您的需求。

使用选项1,当您稍后在人员档案中显示历史记录时,它将包含有关在创建历史记录时当前的书籍的信息。使用选项2,配置文件将显示有关在查看配置文件时当前的书籍的信息。

您希望在个人资料中看到哪些内容?

如果实际上您希望始终显示创建历史记录时的当前信息,这是构建具有时间维度的数据仓库的原因之一。如果这是您所需要的,并且如果您需要处理大量历史数据,则可能需要研究构建与事务数据库分开的数据仓库。

有关数据仓库的一些信息,this IBM Redbook article可能很有用。