作者:遗忘的睡骨 | 来源:互联网 | 2024-11-19 13:23
这个问题可以通过设计一个主从结构来解决,类似于Oracle APEX中的主从表单管理。
参考文档:
Oracle APEX 主从表单管理在这个场景中:
主表(Master) = 用户信息表
从表(Detail) = 地址信息表
在地址信息表中,可以添加一列来标识该地址是否为默认地址。
为了确保每个用户只能有一个默认地址,可以在地址表上创建一个基于函数的唯一索引,例如:
CREATE UNIQUE INDEX MY_INDEX ON ADDRESSES (CASE WHEN IS_DEFAULT = 'Y' THEN USER_ID END);
这样,当尝试将第二个地址标记为默认时,数据库会抛出唯一性约束错误,从而防止了多个默认地址的情况。