如何使用多个表来创建用户配置文件?

时间:2016-09-21 02:35:55

标签: php mysql

我建立了一个公司,将用户添加到我的数据库中,我想要有两个表。一个表跟踪用户知道的语言,另一个表跟踪用户使用的设计软件。

我是否会创建3个表(配置文件,语言,软件),每个表都包含一个I' d字段,当我添加用户时,为每个表添加一行?

1 个答案:

答案 0 :(得分:2)

当您开始添加多个多对多关系时,您需要更多表格来链接'信息在一起。以下是解决问题的方法:

注意这些ID都应该是唯一的索引列。考虑使用AUTO_INCREMENT

表1 包含用户的个人资料信息

| ProfileID |UserInfo   |
|=======================|
|     0     | Info      |
|-----------------------|
|     1     | Info2     |
|-----------------------|

表2:存储可能的语言

|LanguageID |LanguageName|
|========================|
|     50    | Python     |
|------------------------|
|     51    | Java       |
|------------------------|

依旧......

表3:存储配置文件链接到语言

|ProfileID  |LanguageID  |
|========================|
|     0     |     50     |
|------------------------|
|     0     |     51     |
|------------------------|
|     1     |     50     |
|------------------------|

每当您想要为用户的个人资料添加语言时,您都需要在此表格中创建一个条目。

您将为用户知道的软件添加两个表。一个表用于所有可能的软件类型,另一个用于存储链接。

当您想要检索信息时,您将执行如下操作:

SELECT * FROM Table3
LEFT JOIN Table2
ON Table3.LanguageID = Table2.LanguageID
WHERE ProfileID = [TheProfileIDToSearch]

此结构使用JOIN将表链接在一起,以便一次从多个表中返回信息。这是W3Schools关于SQL JOINS的快速解释。