在构建表mysql时创建一行行数据

时间:2014-07-24 03:19:49

标签: mysql hyperlink foreign-keys row create-table

我想要做的是分两部分。

样本表:

CREATE TABLE DEMO(
p_id int AUTO_INCREMENT NOT NULL, 
FirstName varchar(50) NOT NULL,
LastName varchar(50) NOT NULL,
Coworker Data Link????????
PRIMARY KEY(p_id)
);

我的目标是在用户之间存在关系时添加第四列来链接来自其他用户的数据(不会自动生成关系)。

因此,如果Bob Smith与Joe Doe合作,第三列(Coworker)会将第一个用户链接到第二个用户的信息。

我想在表格之间做类似的事情。所以,第二个表就是这样:

CREATE TABLE CONTACT(
a_id int AUTO_INCREMENT NOT NULL,
p_id int NOT NULL, 
Address varchar(100),
City varchar(50),
State varchar(50),
USER DATA LINK????????
PRIMARY KEY(p_id)
);

在第二个实例中,我想将用户名信息与表中的联系信息相关联。

我知道如果查询位于不同的表中,如何使用查询来恢复这些信息,但我被要求创建包含表中链接的单个表。不幸的是,我的网络搜索只能帮助我找到有关查询的信息。

1 个答案:

答案 0 :(得分:0)

您可以创建自引用表,因为MySQL支持表中一列与另一列之间的外键引用;即,通过Coworker引用同一p_id表的DEMO,如下所示

CREATE TABLE DEMO(
p_id int AUTO_INCREMENT NOT NULL, 
FirstName varchar(50) NOT NULL,
LastName varchar(50) NOT NULL,
Coworker int, 
PRIMARY KEY(p_id),
foreign key(Coworker) references DEMO(p_id)
);

然后在获取数据时,您可以执行self join并获取相关数据。可能你可以在相关列的已发布代码示例中为第二个实例执行相同的操作。