我是数据库新手。这是一堂课。我正在使用MySQL。我将使用PHP访问数据库。我已经有两张桌了。 TableA适用于产品。表B适用于美国各州。我想获得每个州每种产品的销售数据。我认为这是一对多关系。
技术理念#1:
我考虑制作第三个表TableC,它有一个州名列和每个产品的列。我的问题是我不知道如何在TableA中的产品行和TableC中的产品列之间创建关系。如果我向TableA添加产品,我希望它自动添加TableC中的列。
技术理念#2:
将产品列添加到TableB。与上述问题相同。此外,似乎是一个更糟糕的设计。
这些技术中的一种是正确的方法吗?还是有另一种技术?
答案 0 :(得分:0)
制作好模式的艺术和科学围绕找到放置东西的最佳位置,或者在许多情况下,最不方便。
将销售数据放在用于地理信息的表格中几乎总是一个错误。保持您的表格专注于一个实体,并且只有当与相关到其他表格时才存在信息,并制作一个"加入表格"连接两者并将数据放在那里。
例如:
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255)
);
CREATE TABLE states (
id INT PRIMARY KEY AUTO_INCREMENT,
code CHAR(2),
name VARCHAR(255)
);
CREATE TABLE state_sales(
id INT PRIMARY KEY AUTO_INCREMENT,
state_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT
);
您可以稍后将其扩展到包括销售发生的日期/月/季度等内容。