【发布时间】:2015-06-03 04:53:04
【问题描述】:
我在尝试了解我的表在我的数据库中应该如何关联时遇到了问题。我是一个初学者,并试图自己研究。表格如下
CREATE TABLE PIZZA
(
pizza_id INT AUTO_INCREMENT PRIMARY KEY,
pizza_name VARCHAR (255),
pizza_desc VARCHAR (255),
pizza_price DOUBLE
);
CREATE TABLE CUSTOMER
(
cust_id INT AUTO_INCREMENT PRIMARY KEY,
cust_first_name VARCHAR (255),
cust_last_name VARCHAR (255),
cust_street VARCHAR (255),
cust_apt VARCHAR (255),
cust_city VARCHAR (255),
cust_state CHAR(2),
cust_zip CHAR(5),
cust_home_phone CHAR(10),
cust_mobile_phone CHAR(10),
cust_other_phone CHAR(10)
);
CREATE TABLE PIZZA_ORDER
(
pizza_order_id INT AUTO_INCREMENT PRIMARY KEY,
pizza_id INT,
cust_id INT,
order_date TIMESTAMP,
order_quantity INT,
order_notes VARCHAR (255),
FOREIGN KEY (pizza_id) REFERENCES PIZZA(pizza_id),
FOREIGN KEY (cust_id) REFERENCES CUSTOMER(cust_id)
);
我的问题是,如果 PIZZA_ORDER 表中的记录让我们说两个不同的披萨,这意味着两个不同的披萨 ID,这将如何工作?我正在考虑让 PIZZA_ORDER 的主键不唯一,并且每个实际订单都有 x 条记录。但我不确定这将如何工作。再次感谢你们对此有所了解。
【问题讨论】:
-
你的 Pizza 表需要一个 Pizza_Order 表的外键,你有它向后
-
您,先生,那里有一个多对多的关系。见stackoverflow.com/questions/1273715/…
-
@kittykittybangbang 谢谢,是的,我有一个多对多的比萨饼和比萨饼订单。我想在未来,如果可能的话,我应该尽量避免多对多。感谢您的帮助。
-
不,不要被吓跑! :) 多对多关系,如果处理得当,可以是一件美好的事情。
标签: mysql database foreign-keys