2012-06-05 51 views
0

我目前正在開始學習PHP和MySQL的新冒險。過去我使用Access做了一些簡單的數據庫,但是這個數據庫是一個以網絡爲中心的數據庫,用於跟蹤無數的數據,包括聯繫人和項目信息。我需要鏈接各種關係中的各種表格,我不確定最好的方式來做到這一點。由於我剛剛開始使用PHP/MySQL,我正在儘可能地研究在線學習資源。如果任何人有書籍或網站的建議,我將不勝感激。如何在聯繫人中設置關係數據庫

在設置我的表格時,我關心的一個主要領域是聯繫人。我將有多種聯繫方式,包括:員工,客戶,供應商,分包商等。單個聯繫人可以是多種類型,每種類型都會有與其相關的各種附加字段。我的想法是有一個聯繫人表格鏈接到各種聯繫人類型的其他表格。我不確定哪個字段類型或表格選項的設置是最好的...想法?

這種情況可能會在數據庫的其他領域以及項目和產品中發揮作用。

任何指針/方向將不勝感激。

WES

回答

0

你熟悉Object Oriented Design

在RDBMS,如MySQL,我會如下設計數據庫:

  • 聯繫人(姓,名等)
    • 員工
    • 廠商
    • 客戶
    • etc

您的表格延伸Contacts將保存其具體數據以及一個contact_id列,創建該關係。

順便說一下,NoSQL解決方案本身就解決了這個問題,因爲它們沒有嚴格的模式。這意味着您可以保存每條記錄的各種數據。

+0

謝謝 - 超越我的時刻。您上面說的「聯繫人」是一個包含聯繫人姓名數據的表格,其他縮進的項目是包含每個類別的詳細信息的附加表格,並且都通過Contact_id鏈接到「聯繫人」? – Walt

+0

是的,就是這樣。 –

0

我會稍微考慮一下你將如何使用這些擴展字段。當然可以爲聯繫人創建一個表格,並且您肯定可以爲每個聯繫人類型(員工,客戶端等)創建一個表格,並將該記錄連接到聯繫人表格(因此,員工將擁有employee_id,contact_id,propertyOne,propertyTwo等) 。

另一個選項雖然,這可能是方便,如果你的應用是聯繫人爲中心的,你真的只是希望能夠將不同種類的信息與聯繫人相關聯,將有一個聯繫表,包含類型的表(例如,「contactTypes」,它將提供供應商類型具有賬單地址的信息)和第三個表格來實際保存所有數據(名稱 - 值對)。這更加流暢,因爲它可以讓您添加新類型的聯繫人或將字段添加到某個類型,而無需實際更改模式。如果你有很多很多的記錄,第一個選項(Jason McCreary的)可能會擴展得更好......

關於資源 - 這裏有太多的東西,我甚至無法開始縮小它 - 看看PHP手冊,只是谷歌「PHP的MySQL教程」 - 噸的東西。

+0

我喜歡添加而不重新創建輪子的想法。我現在有很多聯繫人類型,但有些人可能想要添加更多。 – Walt