作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个包含订单的表“订单”。它应具有包括 userID 和 orderID 的字段。在另一个名为“orderItems”的表中,我想列出引用一个订单的所有项目。问题是,引用一个订单的所有项目应该只通过一个 ID 查询。因为可能只在“订单”的 orderID 字段中设置此 ID。
那么,我该如何创建索引呢?有可能那样实现吗?您对如何改进这个方案有什么建议吗?
我希望你明白,我想告诉你的是什么。
提前致谢,马可
最佳答案
您描述的情况最好通过使用 ORDER_ID
列的 Order
和 OrderItems
表之间的外键来解决。
无法将 ORDER_ID
用作每个 ORDER_ITEM
的主键,因为该键不是唯一的。
DDL
create table `order`(
order_id int NOT NULL,
customer_name varchar(50),
primary key(order_id)
);
create table order_item(
order_item_id int NOT NULL,
order_id int,
item_name varchar(50),
primary key(order_item_id),
foreign key(order_id) references `order`(order_id)
);
完成此 DDL 设置后,您可以通过连接两个表使用一个键轻松引用订单。
select * from
`order` o
join order_item oi
on o.order_id = oi.order_id
where o.order_id = 5;
关于mysql - SQL:如何用一个id引用多个数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316725/
我是一名优秀的程序员,十分优秀!