0

我正在开发一个应用程序,允许用户请求为特定作业生成保修。他们提供的信息,如使用什么产品等...(他们的一些选择是从已经在系统中的物品清单中提供的,然后我们根据这些选择为他们提供保修服务立即存储模型关系

我很苦恼当核准保修取决于可能随时间而改变的相关记录时,使批准的保修成为该时刻的快照的概念

我能想到的最简单的方式不是将关系存储到源表(例如product_id),而是将产品写成字符串,这似乎有点混乱,另一种方式是不允许从产品表中删除/修改产品,除非没有附带的担保。也许实现一个指向t的'replaced_with'列o相同产品的编辑版本?我之前在购物车中做过这件事,而且工作得很好。我只是有很多关系需要管理,并且想知道我有没有想过的方法?

回答

0

什么:

  1. 添加在 “产品停产” 表1:0与保修。只有列是保修ID。
  2. 添加在具有“历史性的产品表”:

    相同的列的产品表

    的日期/时间它填充另外的时间戳字段。

    产品ID的主键/时间戳

    产品ID

  3. 一个删除/修改触发/过程,索引:

    选择产品上的所有担保。

    如果有任何担保,则将产品详细信息复制到“历史产品表”中,添加主键的第二部分。

    对于每个保修发现插入记录到“产品停产”表中。

这是基于您可能希望处理停产项目的保证与有源产品不同的保证。

+0

这不是一个坏主意。我想替代方案只是使用允许软删除/取代的插件。只是想知道是否有一个替代策略可能不会发生在我身上:) – 2011-03-15 22:10:22