在SQL中怎么创建一个多对多的表,分析实体,找出关系模式,并定义它们之间的关系
展开全部
两个实体之间的关系是多对多得话,那么在建表的时候就要建立三张表。比如说学生和课程,他们之间是多对多的关系,一个学生可以选多门课程,一门科目被多个学生选修,这个时候需要通过学生选课表来体现学生与科目的关系。例如下表
学生表:student_id(pk),student_name,student_sex,student_name
科目表:subject_id(pk),subject_name,subject_teacher
学生选课表:[student_id,subject_id](联合主键),score(成绩)
学生表:student_id(pk),student_name,student_sex,student_name
科目表:subject_id(pk),subject_name,subject_teacher
学生选课表:[student_id,subject_id](联合主键),score(成绩)
追问
那你帮我看看这个该怎么改正确啊?我不太会这个。
CREATE TABLE 产品(产品编号 smallint RRIMARY KEY CLUSTERED,
产品名称 VARCHAR(50)NOT NULL,
规格 REFERENCE
型号 CHAR(5) NOT NULL UNIQUE);
CREATE TABLE 零件(零件编号 CHAR(5),
零件名称 CHAR(20));
CREATE TABLE 产品组成(产品编号 CHAR(5),
零件编号 CHAR(5),
数量 ……)
追答
产品表里面的产品编号的数据类型跟产品组成表里面的产品编号要一致,还有你的产品表主键单词写错了primary key(主键),零件表的主键零件编号,然后把产品组成里面的产品编号和零件编号设置为联合主键,同时他们分别是产品和零件这两张表的外键!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询