2011-05-23 62 views
2

我有一個包含客戶編號,客戶名稱和項目編號的MySQL表。這比這更復雜一點,但我試圖簡化它並刪除敏感數據。組織MySQL客戶/數據表

當前表

Unique Customer Number | Customer Name | Item Number 
10001     | Bob   | 20001 
10001     | Bob   | 20002 
10001     | Bob   | 20003 
10002     | Tim   | 20002 
10003     | Frank   | 20001 
10003     | Frank   | 20003 

我想闖入情侶對錶這使得它更容易的工作。我想類似這樣:

Customer表

Unique Customer Number | Customer Name 
10001     | Bob 
10002     | Tim 
10003     | Frank 

項目表

Unique Customer Number | 20001 | 20002 | 20003 
10001     | YES | YES | YES 
10002     | NO | YES | NO 
10003     | YES | NO | YES 

有沒有更好的方式來組織呢? 如何編寫PHP代碼以將我的CURRENT TABLE分隔到新的CUSTOMER/ITEM TABLE中?

回答

2

您希望使用聯結表來解決客戶和項目之間的多對多關係。喜歡的東西:

enter image description here

1

好惡......項目,如列...很糟糕的主意......你可能有50分多列結束了對基本沒什麼......

Customers (CustomerNumber, CustomerName, ...) 
Items (ItemNumber, ItemDescription, ...) 
CustomerItemMapping (CustomerNumber, ItemNumber) 

其中CustomerItemMapping兩個字段都是對應表值的外鍵(即CustomerNumber映射到Customers.CustomerNumber字段)。