两个表roletype和usertable,usertable有冗余数据,如何保证数据的一致性呢?一致性问题:
1.roletype表更新时,要更新usertable中相关数据
2.usertable插入,更新时要保证和roletype中数据一致..create table
roletype
(
roleid number(8) primary key,
rolename varchar(50)
);create table
usertable
(
userid number(8) primary key,
name varchar(50),
roleid number(8),
rolename varchar(50) not null,
constraints fk_userid foreign key (roleid) references roletype(roleid)
);是不是要建立两个触发器?还是用其它的方法来保证数据的一致性?
1.roletype表更新时,要更新usertable中相关数据
2.usertable插入,更新时要保证和roletype中数据一致..create table
roletype
(
roleid number(8) primary key,
rolename varchar(50)
);create table
usertable
(
userid number(8) primary key,
name varchar(50),
roleid number(8),
rolename varchar(50) not null,
constraints fk_userid foreign key (roleid) references roletype(roleid)
);是不是要建立两个触发器?还是用其它的方法来保证数据的一致性?
rolename varchar(50)
是外键,级联更新就可以了
在usertable中,我已经把roleid设置成外键了,可是不能级联更新啊。
roletype表应该是一个静态表,极少发生变化,这样就不用对roletype建立trigger了,如果roletype修改数据时手工批量执行一个update操作就可以了。
usertable变化比较频繁,可以对usertable建立一个trigger,修改roleid或插入数据时利用此trigger自动更新rolename的数据。