我有一个MySQL表,其中包含客户编号,客户名称和项目编号。它比这复杂一点,但我尝试简化它并删除敏感数据。
CURRENT TABLE
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 TABLE
Unique Customer Number | Customer Name
10001 | Bob
10002 | Tim
10003 | Frank
ITEM TABLE
Unique Customer Number | 20001 | 20002 | 20003
10001 | YES | YES | YES
10002 | NO | YES | NO
10003 | YES | NO | YES
有没有更好的方法来组织这个? 我如何编写PHP代码以将CURRENT TABLE分离到我的新CUSTOMER / ITEM TABLE中?
答案 0 :(得分:2)
您希望使用联结表来解决客户和项目之间的多对多关系。类似的东西:
答案 1 :(得分:1)
Eww ......作为列的项目...非常糟糕的想法......你最终可能会得到50多列,基本上没什么......
Customers ( CustomerNumber, CustomerName, ... )
Items ( ItemNumber, ItemDescription, ... )
CustomerItemMapping ( CustomerNumber, ItemNumber )
CustomerItemMapping两个字段都是相应表值的外键(即CustomerNumber映射到Customers.CustomerNumber字段)。