【发布时间】:2020-01-07 13:45:46
【问题描述】:
我有一个简单的 CRUD 应用程序,使用关系数据库。
我的数据库设置了所有外键、唯一键等。
我的问题是,我的应用程序应该对输入数据执行验证还是应该是数据库问题?
例如,想象一个 POST,它期望另一个实体的 id,它是我数据库中的外键。
我的应用程序是否应该首先查询该 id,查看它是否存在于数据库中,如果不存在,则返回 404?还是我应该简单地尝试在数据库中插入该实体并等待 CONSTRAINT 错误?
【问题讨论】:
-
如果您的 CRUD 应用程序是 GUI,通常会为每个有效值字段提供一个下拉列表。您的代码通过查找 FK 来获取列表,这是在有足够的输入进行验证之前。 (一些开发/数据库工具,如 MSAccess,可能会为您完成其中的一些工作。)将所有验证留给 DBMS 会很好,但通常它的错误消息并不友好。此外,您可能需要无法表示为键/FK 的约束。
标签: foreign-keys relational-database crud