我的应用程序有一个复杂的数据模型,其中多个表具有复杂的关系。UI 负责验证用户输入。但是,我有一个要求,用户希望暂时保存他的数据(有点像草稿),以便他可以继续对其进行更改一段时间,直到他满意为止。在这种情况下,验证不需要在那里,因为他可能不会立即输入一些强制性属性。虽然在这种情况下我可以轻松关闭验证,但数据库级别的 NON NULL 约束和参照完整性不允许我这样做。
做这种事情的其他合理方法是什么?由于涉及的表格太多,我不希望复制它们以让用户在一些临时表格中插入数据,直到最终确定他的草稿。
我的应用程序有一个复杂的数据模型,其中多个表具有复杂的关系。UI 负责验证用户输入。但是,我有一个要求,用户希望暂时保存他的数据(有点像草稿),以便他可以继续对其进行更改一段时间,直到他满意为止。在这种情况下,验证不需要在那里,因为他可能不会立即输入一些强制性属性。虽然在这种情况下我可以轻松关闭验证,但数据库级别的 NON NULL 约束和参照完整性不允许我这样做。
做这种事情的其他合理方法是什么?由于涉及的表格太多,我不希望复制它们以让用户在一些临时表格中插入数据,直到最终确定他的草稿。
看看可延迟的约束:
create table daa_delete_me (col1 number not null deferrable);
alter session set constraints = deferred;
insert into daa_delete_me values (null); -- succeeds
commit; -- fails
insert into daa_delete_me values (null);
update daa_delete_me set col1 = 1;
commit; -- succeeds