基本上,我需要创建一个新表,该表使用其他两个表中的特定信息。
例如,我有一个名为person的表,其元素为person_id,first_name,last_name,性别,年龄和fav_quote。我还有一个名为Department的第二张表,其中包含元素dept_id,dept_name和建筑物。现在,我需要创建一个包含person_id和dept_id元素的交集表。两者都必须是主键(我认为这只是我的源中的PRIMARY KEY(person_id,dept_id)命令)。
创建表的人(
person_id INT(8)NOT NULL auto_increment,
first_name VARCHAR(25)NOT NULL,
last_name VARCHAR(25)NOT NULL,
性别VARCHAR(1)
年龄INT(8),
fav_quote TEXT
主键(person_id)
);
CREATE TABLE部门(
dept_id INT(8)NOT NULL auto_increment,
dept_name VARCHAR(25)NOT NULL,
构建VARCHAR(25)NOT NULL,
主键(dept_id)
);
那是我为最初的两个表提供的代码,我不确定如何创建一个交集,并且在回顾笔记之后,我找不到有关如何编写交集的说明。
答案 0 :(得分:1)
您正确掌握了主键部分。我会将外键添加到现有表中,以防止与不存在的人员或部门进行交互:
CREATE TABLE person_department
person_id INT(8) NOT NULL,
dept_id INT(8) NOT NULL,
PRIMARY KEY(person_id, dept_id),
FOREIGN KEY(person_id) REFERENCES person(person_id),
FOREIGN KEY(dept_id) REFERENCES department(dept_id)
)
答案 1 :(得分:0)
您需要一个包含2个字段的表格; person_id和dept_id。该表将具有指向两个表的人员和部门主键的外键,以及两者的复合主键。
此外,仅当人与部门之间存在一对多关系时,才需要此表。否则,只需亲自将dept_id添加为外键。