UI中有一个名称字段,它也是基础表中的主键列。需要在UI中使该字段可编辑。应该有一个ID作为主键,但是没有,现在引入任何ID列是不可行的。
是否有可以在这种情况下使用的替代设计理念?
UI在Swing中,DB在Oracle中。
答案 0 :(得分:0)
首先,我不知道,谁认为Name
字段可以是Primary Key
。这是错误的数据库设计。
是的,您最好将其更改为某个ID
列Primary Key
,并且以后不应该更新。因为,您不能拥有多个Primary Key
。所以,你需要在这里进行一些马戏团。
您需要先drop
现有Primary Key
。因为,您不能在单个表格中拥有多个Primary Key
。
创建ID
列并允许NULL
然后,按顺序更新此列。
填充ID
列后,您需要在此列上创建Primary Key
。
答案 1 :(得分:0)
您只能拥有一个主键,但您可以在表上拥有任意数量的唯一索引。因此,让现有主键成为不可变主键,并让应用程序在内部使用此键进行所有操作。向表中添加另一列并在其上创建唯一索引。让用户修改此其他字段。
另一种替代方法是使用外键ON UPDATE CASCADE声明所有子表。这样,对主键的任何更新都将级联到子表。一旦在生产中实施,退出公司并在另一个方向快速运行,并撰写一篇文章,说明您是如何在生产环境中第一个使用ON UPDATE CASCADE的人。