我是个数据库新手。这是为一个课程准备的。我正在使用MySQL。我将使用PHP访问数据库。我已经有两张桌子了。TableA是针对产品的。TableB代表美国。我想要每个州每种产品的销售数据。我认为这是一种多对多的关系。
技术想法#1:
我曾考虑创建第三个表TableC,它有一个表示州名称的列和一个表示每个产品的列。我的问题是,我不知道如何在TableA中的产品行和TableC中的产品列之间创建关系。如果我将一个产品添加到TableA,我希望它自动在TableC中添加该列。
技术想法#2:
将产品列添加到TableB。与上面的问题相同。而且,这似乎是一个更糟糕的设计。
这些技术中的一种是做这件事的正确方法吗?还是有其他的技术?
发布于 2017-04-30 07:29:59
创建一个好的模式的艺术和科学围绕着找到放置东西的最佳位置,或者在许多情况下,最不方便的地方。
将销售数据放在一个用于存储地理信息的表中几乎总是错误的。将你的表集中在一个实体上,当那里的信息只有在与其他表相关时才存在的地方,制作一个连接两者的“连接表”,并将数据放在那里。
例如:
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
);您可以稍后将其扩展为包括销售发生的日期/月/季度等内容。
https://stackoverflow.com/questions/43700957
复制相似问题