2016-09-21 73 views
0

我做了一個公司,現在我想添加一個用戶到我的數據庫中。一張表跟蹤用戶知道的語言,另一張表用戶使用的設計軟件。如何使用多個表創建用戶配置文件?

我會創建3個表(配置文件,語言,軟件),每個都有一個I字段,當我添加一個用戶向每個表添加一行時?

+1

您需要5個表格,因爲您需要維護兩個不同的多對多關係。我假設用戶知道多種語言並使用多種軟件工具。 –

+0

5是什麼?我只是認爲個人資料,語言,軟件 – BBDev

回答

2

當您開始添加多個多對多關係時,您需要更多的表將這些信息「鏈接」在一起。以下是我將如何解決問題的方法:

注意這些ID應該都是唯一索引列。考慮使用AUTO_INCREMENT

表1:包含用戶的個人信息

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

表2:存儲可能的語言

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

等等...

表3:將配置文件鏈接存儲到languag中es

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

每當您想要將語言添加到用戶的配置文件中時,都需要在該表中創建一個條目。

您可以爲用戶知道的軟件添加兩個表格。一張表用於所有可能的軟件類型,另一張表用於存儲鏈接。

當你想要檢索的信息,你會做的操作,如下面的一個:

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

該結構使用JOIN鏈接表結合在一起,同時從多個表返回信息。這裏是關於SQL JOINS的W3School快速解釋。

相關問題