sqlserver数据库主外键问题
发布网友
发布时间:2022-04-22 04:35
我来回答
共3个回答
热心网友
时间:2022-04-09 05:18
你这个表设计不符合第三范式。
正常应该是有一个学生表(stu_id,stu_name,age,sex),班级表(class_id,class_name),然后再有一个学生班级表(stu_id,class_id)
学生表中stu_id是关键字;班级表中class_id是关键字;学生班级表中stu_id,class_id组合关键字;
学生班级表中:
stu_id是外键,引用学生表的stu_id
class_id是外键,引用班级表的class_id
热心网友
时间:2022-04-09 06:36
可以的,如果你说的其他表中name字段是该表的主键的话,是可以作为学生表的外键的。追问name不是其他表的主键,我的问题关键是说如果有一个表是两个字段唯一标识的,那么能不能称其中一个字段为他的外键?
追答一个表的联合主键可以作为其他表的外键,但是联合主键中的一个字段不能作为本身的外键,也不能作为其他表的外键。
热心网友
时间:2022-04-09 08:11
ALTER
TABLE
[dbo].[外键表]
WITH
CHECK
ADD
CONSTRAINT
[FK_外键键名]
FOREIGN
KEY([外键字段])
REFERENCES
[dbo].[主键表]
([主键字段])
你的外键表应该是BBSTopic,主键表是BBSUsers