【发布时间】:2014-04-18 23:43:17
【问题描述】:
我将 Perl DBI 与 PostgreSQL 一起使用,我的用户将从表中删除行,其中一些由于外键约束而无法删除,这很好,但我想要一种标记这些行的方法在前端,以便在尝试删除它们之前知道哪些行有约束。现在,用户只需点击“删除”,就会出现错误或删除该行。
【问题讨论】:
-
这正是约束的意图。存在约束是因为数据模型必须以一种或另一种方式强加。仅仅因为你想删除一些记录而“点击删除”是没有意义的。 Ergo:应用程序应该了解数据模型。例如:如果您尝试“删除”一个人,并且该人的婚姻记录存在,那么婚姻记录应该如何处理?
-
@wildplasser 不确定我是否遵循,似乎 OP 在询问如何找到约束,以便用户甚至看不到执行他们被限制执行的任务的选项。
-
恕我直言,应用程序应该与数据库和数据模型有密切的关系。这可以通过(应用程序)目录来实现,但应用程序应该知道模型。一种方式或另一种方式。在任何情况下,“删除记录”都不是一种选择。如果 it 是预期的操作,则应实施。一种或另一种方式。
-
@GoatCO:数据库和应用程序之间有一个隐藏的“合同”。 “找到约束”(通常)不是强加合同的方式。
-
好吧,我猜你根本不明白这个问题。
标签: sql perl postgresql dbi