2011-05-23 59 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字段)。