Table one
ID | product_code | product name | company_id
1 | 12345 | beer cake |343434defee
2 | 12346 | vodka cake |343434deereee
Table two
Product_code |Quantity | price | weight
12345 | 34 |345 |0.5
12345 | 343 |600 |1.0
12345 | 4 |845 |1.5
12346 | 341 |345 |0.5
CREATE TABLE `one`(
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
product_code VARCHAR(32) NOT NULL ,
name VARCHAR(30) NOT NULL ,
company_id VARCHAR(30) NOT NULL)
CREATE TABLE two(
product_code VARCHAR(32) ,
weight VARCHAR(20) NOT NULL ,
price INT(4) NOT NULL ,
Quantity INT(4) NOT NULL ,
FOREIGN KEY (product_code) REFERENCES one(product_code))
这就是我的表格的样子,每种类型的蛋糕都必须显示在产品登陆页面上。两个表格之间的关系由product_code
列给出。
外表是否必须有主键?
请告诉我如何为这些创建正确的架构?
最佳答案
您的数据结构设置错误。这是您的第一个表:
ID | product_code | product name | company_id
1 | 12345 | beer cake |343434defee
2 | 12346 | vodka cake |343434deereee
这很好。 ID
大概是每行的唯一 ID。应将其声明为主键。 product_code
应声明为唯一
。
第二个表应包含id
,而不是product_code
。 Product_code
是第一个表的每一行的属性。您有 id
来引用该行。
关于mysql - 外表中是否必须有主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39934972/