1

我目前正在构建一个基于保险的 Rails 应用程序。有一个管理部分,员工可以在其中控制系统表,主要是下拉列表中显示的内容,尽管有些更复杂,有自己的关联。此应用程序中的主要模型是保单,这需要保存/链接到许多其他表格中的信息,例如索赔人、被告、保险级别、用户等。每个表格都可能有自己的关联,例如链接到反过来链接到地址等的人。

保单链接到的更复杂的表格之一是总体承保水平,其中包含确定保费、付款等的财务信息。

创建策略后,我需要对所有数据进行快照。如果稍后管理员用户修改了策略,则需要进行版本控制,即使是在相关数据上也是如此。

我想知道是否有人对此问题有任何通用解决方案。目前我正在考虑孤立记录,单表继承,保留系统表链接但使该数据不可编辑,将数据处理到策略表中的字段中(使其成为编辑时的文本框,选择框create) 或创建两张表,一张用于实时,一张用于模板。

到目前为止,我能想到的最好的方法是根据应用程序需求收集上述不同方法。这一定是应用程序中的普遍问题!?您对如何解决此类问题有更好的想法/建议吗?

4

2 回答 2

1

如果不确切了解应用程序的需求,就很难确定最佳解决方案是什么。

然而,根据我所阅读的内容,我立即想到的解决方案是您描述的“孤立记录”,但我不明白为什么它们需要成为孤立记录。

您可以创建这样的模型:

class PolicyHistory< ActiveRecord::Base
   belongs_to :policy
end

class Policy < ActiveRecord::Base
has_many :policy_histories
end

保单历史记录可以包含您在特定时刻的所有保单详细信息和相关数据的快照,甚至包括更改的人。

您可以展平关联并将该数据存储在一堆列中。但是,这在更改任何相关表时可能会导致问题,因为您还必须更新历史表。

对此的解决方案可能是将完整的快照序列化为哈希。然后,策略历史表将能够处理对相关表的任何更改。

我希望这对你有一些帮助!

于 2009-11-13T00:58:07.527 回答
1

对于模型的版本控制,vestal_versions (github.com/laserlemon/vestal_versions) 插件可能会有所帮助。

于 2009-11-13T00:20:54.320 回答