更新数据库中的数据的策略(Oracle)

时间:2010-10-05 03:21:39

标签: oracle

我们有一个使用Oracle的产品,数据库中有大约5000个对象(表和包)。该产品分为两部分,第一部分是硬部分:客户端,包和数据库模式,第二部分基本上由表示可以配置为在我们的产品上运行的进程(工作流)的软数据组成。

嗯,基本流程(工作流程)是作为产品的一部分提供的,我们的客户可以更改这些流程并使其适应他们的需求,当尝试升级到更新版本的产品时出现问题,然后尝试更新数据库记录数据,我们的客户删除或修改的记录存在问题。

是否有解决此问题的策略?

1 个答案:

答案 0 :(得分:2)

软件产品通常不仅包含客户端和架构对象,还包含数据;通常它似乎被称为“静态数据”,即它只是由软件开发人员修改的数据,并且最终用户通常无法修改。

如果最终用户绕过您的安全控制并修改/删除静态数据,则需要:

  1. 编写检测并补偿最终用户可能已做过的任何修改的代码;例如擦拭表格并重新填充“已知良好”数据;
  2. 从客户处获取修改样本,以便您可以为他们手动编写自定义更新脚本,而不会影响他们的自定义;或
  3. 不允许修改静态数据(例如,如果他们通过更改数据来定制产品,则说“对不起,您修改了产品,我们不支持您”。
  4. 但是,根据您的描述,您的产品看起来像是允许客户通过更改这些表中的数据来自定义它;在这种情况下,您的代码只需要能够适应他们可能做出的任何更改。这需要成为升级设计的基本考虑因素。该策略是枚举用户可能已经(或可能已经做出)的所有类型的更改,并满足它们。唯一可行的替代方案是上面的#1,它删除了所有自定义。