是否可以在两个表之间创建关系

时间:2016-02-15 12:55:31

标签: php mysql

我对MySQL中有关系的两个或更多表格有疑问。对于大学,我需要创建一个人们可以填写他们的表格:

Firstname
Lastname
Street and Housenumber
ZIPcode and City
State
Phonenumber
E-mail
Experience
Resume
(sendbutton)

现在我将创建一个管理面板,管理员可以按州或城市搜索人员。如何在表单和mysql之间建立关系?我知道关系如何运作。我有一个其他网站,有人可以选择一个音乐艺术家(tabel1),选择艺术家后,会出现更多有关此人的信息(tabel2)我如何对我正在创作的表单做同样的事情?

对不起我的英语不好,我希望能够理解我的意思。

1 个答案:

答案 0 :(得分:1)

尝试将数据库拆分为实体。在这里吸引眼球的唯一实体是“人”和“地址”

使用您的属性,将它们拆分为:

人:

Firstname
Lastname
E-mail
Phonenumber
Experience
Resume

地址:

Street 
Housenumber
ZIPcode 
City
State

我们的想法是将不同的数据分组并对相似的数据进行分组。现在要添加关系,您需要在每个表中使用一个id列来使其成为3nf。然后将另一个id添加到其中一个表以用作外键。

我会在person表中添加一个名为“AddressId”的属性,然后在person.addressId = address.id的连接中使用此属性。这将为您提供一对多的关系,其中每个人都有一个地址,但一个地址可以有一个多人与之关联。

您可以通过多种不同方式执行此操作,因为除了强制表之间的关系之外没有其他实际要求。这将是最常见的最佳实践,将表格划分为逻辑划分,但理论上您可以采用这些属性中的任何一个并将它们作为单独的表格。