我们有一个使用Oracle的产品,数据库中有大约5000个对象(表和包)。该产品分为两部分,第一部分是硬部分:客户端,包和数据库模式,第二部分基本上由表示可以配置为在我们的产品上运行的进程(工作流)的软数据组成。
嗯,基本流程(工作流程)是作为产品的一部分提供的,我们的客户可以更改这些流程并使其适应他们的需求,当尝试升级到更新版本的产品时出现问题,然后尝试更新数据库记录数据,我们的客户删除或修改的记录存在问题。
是否有解决此问题的策略?
答案 0 :(得分:2)
软件产品通常不仅包含客户端和架构对象,还包含数据;通常它似乎被称为“静态数据”,即它只是由软件开发人员修改的数据,并且最终用户通常无法修改。
如果最终用户绕过您的安全控制并修改/删除静态数据,则需要:
但是,根据您的描述,您的产品看起来像是允许客户通过更改这些表中的数据来自定义它;在这种情况下,您的代码只需要能够适应他们可能做出的任何更改。这需要成为升级设计的基本考虑因素。该策略是枚举用户可能已经(或可能已经做出)的所有类型的更改,并满足它们。唯一可行的替代方案是上面的#1,它删除了所有自定义。