我应该使用什么数据库技术?

时间:2017-04-29 22:12:19

标签: mysql

我是数据库新手。这是一堂课。我正在使用MySQL。我将使用PHP访问数据库。我已经有两张桌了。 TableA适用于产品。表B适用于美国各州。我想获得每个州每种产品的销售数据。我认为这是一对多关系。

技术理念#1:

我考虑制作第三个表TableC,它有一个州名列和每个产品的列。我的问题是我不知道如何在TableA中的产品行和TableC中的产品列之间创建关系。如果我向TableA添加产品,我希望它自动添加TableC中的列。

技术理念#2:

将产品列添加到TableB。与上述问题相同。此外,似乎是一个更糟糕的设计。

这些技术中的一种是正确的方法吗?还是有另一种技术?

1 个答案:

答案 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
);

您可以稍后将其扩展到包括销售发生的日期/月/季度等内容。