gpt4 book ai didi

mysql - 关联三个不同表的三个主键

转载 作者:行者123 更新时间:2023-11-29 06:09:33 25 4
gpt4 key购买 nike

我有以下表格类别、餐厅和菜单。

一家餐厅可以有多个菜单,一家餐厅也可以有多个类别。每个菜单显然都有一定数量的类别,并且每个类别可以是多个菜单的一部分。

我可以创建一个像这样的表,并且有 3 个主键吗?

类别 ID |餐厅 ID |菜单ID

1(开胃菜)| 1 智利 | 2份晚餐菜单
2(主菜)| 1 智利 | 2份晚餐菜单
3 (甜点) | 1智利的| 2份晚餐菜单
1 | 67 麦当劳 | 3 午餐菜单1

最佳答案

是的,您可以为元组(category_id,restaurant_id,menu_type_id)创建主键。更好的是,创建一个普通的、完整的主键,并在该元组上添加另一个具有唯一性约束的索引。拥有一个快速、简单的主键总是好的,但您当然可以强制三元组的唯一性:

CREATE UNIQUE INDEX menu_index
ON menus (category_id, restaurant_id, menu_type_id)

或者您可以在表创建中定义索引:

CREATE TABLE menus (menu_id       INT AUTO_INCREMENT PRIMARY KEY,
category_id INT,
restaurant_id INT,
menu_type_id INT,
FOREIGN KEY (category_id) REFERENCES categories(category_id),
FOREIGN KEY (restaurant_id) REFERENCES restaurants(restaurant_id),
FOREIGN KEY (menu_type_id) REFERENCES menu_types(menu_type_id),
UNIQUE INDEX (category_id, restaurant_id, menu_type_id)
) ENGINE=InnoDB;

关于mysql - 关联三个不同表的三个主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9778932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com