CREATE TABLE identity(id char(11) primary key,
foreign key(id) references student(s_id),
foreign key(id) references teacher(t_id),
password char(32) not null,
who char(3) not null); 这样建表的结果 提示是成功的 但是这样建表 会有问题吗? 一个键 能同时 是两个表的外健吗 ?
foreign key(id) references student(s_id),
foreign key(id) references teacher(t_id),
password char(32) not null,
who char(3) not null); 这样建表的结果 提示是成功的 但是这样建表 会有问题吗? 一个键 能同时 是两个表的外健吗 ?
但是在你的,ID对应s_id(学生ID)、t_id(教师ID)
应该有问题
但是在你的,ID对应s_id(学生ID)、t_id(教师ID)
应该有问题能 解释下吗 谢谢你阿
我的 理解是你想限制这个ID必须是 学生 或者 师的 id 而不是 学生 并且 老师的 id 。 注意你用了个和字,这很容易令人以为是 并且如果没有理解或者猜错你的想法,则你不能用外键来实现这个 或者 的外键限制。 只能通过触发器来实现 ID 在学生中或者在老师中。但如果真是如此,你的表设计可以重新考虑。 常规的设计方法是设计一个人员表(ID,姓名,性别,密码。) ID为主键
学生表(ID,)ID外键参考 人员表
老师表(ID,)ID外键参考 人员表
那这样的话 学生表的primary key 是 ID 吗
老师表的primary key 是 ID 吗
所以就不要用外键,再加一列表示是老师还是学生这样
id与你flag组合成主键。能区分了。