在SQL中需要专家建议

时间:2014-04-11 13:30:32

标签: sql windows algorithm architecture

我有一个场景,其中表A引用了表B,表B对表C列有参考......等等。

要在我的项目中实现更新任务,我应该在两阶段逻辑中实现它 即先删除该行并再次添加最新行。

但不幸的是,当我尝试删除表A中的一行时,它有引用,而该引用又引用了其他表,依此类推。因此,我的删除和添加逻辑不能始终以正确的方式工作。即使它被删除并再次添加,它被添加的顺序也是最后的,即作为新记录。因此,我将以与旧版相同的顺序丢失所有早期参考曲目。

因此我想从表中删除一行而不影响引用,即暂时它应该允许忽略引用,一旦我再次添加它,即更新记录然后我需要重新执行/启用引用。

有可能以这种方式吗?或者有任何其他逻辑以类似的方式工作或取代原来的意图?有人可以就此提供您的专业建议吗?

Windows Service Pack的一般逻辑如何工作?任何人都可以详细说明吗?或分享一些关于相同的信息或文档或博客?

非常感谢你。 问候, 希亚姆

1 个答案:

答案 0 :(得分:1)

你想做的是一个不好的做法,我会重新考虑你的设计。它不允许您删除父记录,因为有子记录。这就是数据库ii应该并试图绕过它的是100%保证坏数据。

如果您要完成的是将子记录移动到新父级,则可以完成,但您先添加新记录然后进行更新。最好是你有一些字段能够定义它曾经与之关联的旧记录或用于进行许多更改的映射表。然后,您需要为每个子表运行更新。这种事情应该是一次性改变,而不是常规练习。它肯定不会从应用程序中发生,只需要由合格的数据库开发人员完成。

如果您要完成的任务是停用父母,那么它就不能再用于某些目的(例如创建新订单)并留下报告的详细信息(不会想要丢失财务资料)旧订单),然后你应该在表上放置一个活动标志,并使用它来过滤记录。通常这意味着只创建一个活动记录视图,并将代码指向直接放入表中的视图。