2016-02-15 92 views
0

我有一個關於MySQL中的兩個或多個表的問題與關係。對於大學,我需要建立一個形式,人們可以在他們填寫:是否有可能創建兩個表之間的關係

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

現在,我將創建一個管理員面板,管理員可以通過國家或城市搜索的人。我如何在表單和mysql之間建立關係?我確實知道一些關係是如何工作的。我有一個其他網站有人可以選擇一個音樂藝術家(tabel1),選擇藝術家後,會出現更多關於此人的信息(tabel2)我如何對我創建的表單執行相同的操作?

對不起,我的英語不好,我希望這是清楚的足以理解我的意思。

+1

是的,你可以做到。首先讓我們知道你做了什麼。 – PHPExpert

+0

現在什麼都沒有,我必須用至少兩個關係來進行數據庫設計(在開始編程之前)。所以我必須告訴我將用什麼語言和數字(varchar-int)那些東西。我已經做到了。但現在我必須做一個設計,讓我的老師看看這個人/城市/國家之間的關係。所以當選擇州時,州內所有城市的人都會出現......如果選擇了城市,那麼這些人就會出現。我知道如何做到這一點與一個表中的一切都在,但不是當不同的標籤和關係 – GLRotterdam

+0

好吧,先從編碼開始,然後問如果卡住任何一點的幫助。現在,沒有任何代碼或你的工作完成,無法幫助更多。 – PHPExpert

回答

1

嘗試將您的數據庫拆分爲實體。這裏吸引眼球的唯一實體是 「人」 和 「地址」

使用您的屬性,將它們分爲:

人:

Firstname 
Lastname 
E-mail 
Phonenumber 
Experience 
Resume 

地址:

Street 
Housenumber 
ZIPcode 
City 
State 

這個想法是要說明不同的數據和分組類似的數據。現在要添加關係,您需要在每個表中添加一個id列以使其成爲3nf。然後將另一個id添加到其中一個表中以用作外鍵。

我會將一個名爲「AddressId」的屬性添加到person表中,然後在person.addressId = address.id上的聯接中使用此屬性。這將給你一個一對多的關係,每個人有一個地址,但地址可以有一個多人與之相關聯。

您可以通過多種不同的方式來做到這一點,因爲除了強制表格之間的關係外,沒有其他任何要求。這將是最常見的最佳做法,將表格分解爲邏輯分區,但理論上可以採用這些屬性中的任何一個,並將它們製作成單獨的表格。

+0

哇!好主意沒有想到這一點。但我想我會非常感謝你使用這個! – GLRotterdam

+1

沒問題,很高興幫助:) – Anton

相關問題