0

我有一个与使用外键约束的数据库一起使用的应用程序。

例如,我们有一个清单表,它有一个引用名为 case_names 的表的外键约束。如果用户尝试删除具有引用其 ID 的任何库存项目的案例名称,则该操作将受到限制。

如何向用户显示他们会理解的消息?“你不能删除这个箱子,因为它仍然包含库存物品。”

我的想法是尝试捕获(捕获不同的错误类型?),但我真的不想将它用于可能预期的事情。

该应用程序在 VB.Net 中使用 MySQL.data

4

1 回答 1

2

我不会使用异常来处理用户错误或正常的程序流程。只需检查用户是否可以删除记录(可能使用存储过程),如果不能向她显示警报消息。

我认为例外是您无法预见的错误。

编辑以澄清:

存储过程(或程序中的代码)可以检查所有涉及的表,甚至可以检查COUNT()删除请求会影响多少记录。通过计数,您还有一个额外的好处是告诉用户有多少库存项目与案例相关,在您的示例中:

“你不能删除这个案例,因为它仍然包含 32 个库存项目。”

编辑以澄清更多:

当然,这并不是说不应该在数据库中正确设置引用完整性。如果您忘记了一些检查,您仍然拥有适合您的数据库(并且用户会打电话给您以了解程序到底在说什么:))。

于 2012-03-01T16:54:58.797 回答