组织 MySQL 客户/数据表

发布于 2024-11-09 10:56:47 字数 918 浏览 0 评论 0原文

我有一个 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

我想将其分成几个表,以便更容易使用。我正在考虑类似的事情:

客户表

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 代码来将我的当前表分离到我的新客户/项目表中?

I have a MySQL table with customer numbers, customer names, and item numbers. It's a little more complex than this, but I tried to simplify it a little and remove sensitive data.

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

I want to break this into a couple of tables so that it's easier to work with. I was thinking of something similar to this:

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

Is there a better way to organize this?
How would I write the PHP code to separate my CURRENT TABLE into my new CUSTOMER / ITEM TABLEs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素年丶 2024-11-16 10:56:47

您希望使用联结表来解决客户和项目之间的多对多关系。类似于:

在此处输入图像描述

You want to use a junction table to resolve the many-to-many relationship between customers and items. Something like:

enter image description here

旧夏天 2024-11-16 10:56:47

Eww ...项目作为列...非常糟糕的主意...您可能最终会得到 50 多个列,而基本上什么都没有...

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

其中 CustomerItemMapping 两个字段都是相应表值的外键(即 CustomerNumber 映射到Customers.CustomerNumber 字段)。

Eww ... items as columns ... very bad idea ... you could potentially end up with 50+ columns for basically nothing ...

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

Where the CustomerItemMapping both fields are a Foreign Key to the corresponding table values (i.e. CustomerNumber maps to the Customers.CustomerNumber field).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文