首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mysql/pgsql中,使用什么算法或模式来检查哪些表中的哪些行将被级联删除?

问在mysql/pgsql中,使用什么算法或模式来检查哪些表中的哪些行将被级联删除?
EN

Stack Overflow用户
提问于 2013-12-04 20:48:36
回答 1查看 92关注 0票数 0

所以问题是,我在数据库中有很多表,而且几乎所有的表都是删除级联的。如果用户删除某一行,那么通知用户在整个数据库中删除哪些内容的最佳方式是什么。我应该读什么算法/模式?在java中实现是可取的。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 20:53:34

首先,这似乎是一个错误的设计,当您考虑到贯穿对象图的级联路径是在编译时已知的,并且您在询问如何在运行时按需构造它们。你可以建造和储存它们一次。

也就是说,设计模式可能没有太多的理由。大多数情况下,您将需要反射,包括在属性或方法上查找注释的能力。

然后,当您在图中导航时,您将查找目标注释并添加或不添加,当然,如果您没有找到级联,您可以停止沿着图的那个分支。

如果有一些不同的处理类型的理由,访问者会应用,但是没有。Sun的注释处理工具使用了访问者,但这是用于编译时处理。

可能没有这样做的能力,但是在Java 8中这样做会很有趣,因为您可以更清晰地将导航代码与测试代码分离开来,方法是定义一个谓词(作为Lambda),然后在每个节点上对其进行评估。您的谓词将简单地检查是否存在级联注释。听起来,您可能没有使用ORM,所以您的代码中可能没有注释用于级联,更有理由有一个单独的谓词,因为这样您就可以有一个元数据版本,它实际上可以查看特定的数据库(Postgres),但是如果您想将它与ORM一起使用,那么您实际上需要更改几行代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20385593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档