我应该如何为电子商务列表和订单设计sql模式?
因此,我有3个名为Books、Listings和Orders的表,它们可以在代码示例中看到。我的问题是,我想在前端显示列表,但我想省略已经附加了订单的列表。我应该向列表中添加有序布尔值吗?从订单到物品的外键是否合适 另外,如果我想查看已完成的订单,那么如果列表被删除并且它有一个外键连接到已完成的订单,则会出现问题。我该如何设计呢我应该如何为电子商务列表和订单设计sql模式?,sql,database-design,Sql,Database Design,因此,我有3个名为Books、Listings和Orders的表,它们可以在代码示例中看到。我的问题是,我想在前端显示列表,但我想省略已经附加了订单的列表。我应该向列表中添加有序布尔值吗?从订单到物品的外键是否合适 另外,如果我想查看已完成的订单,那么如果列表被删除并且它有一个外键连接到已完成的订单,则会出现问题。我该如何设计呢 Table books{ id int [pk, increment] title varchar isbn10 varchar amazon_used
Table books{
id int [pk, increment]
title varchar
isbn10 varchar
amazon_used_price int
edition varchar
image varchar
}
Table listings{
id int [pk, increment]
price int
date_listed datetime
seller_email varchar
book_id int [ref: > books.id]
}
Table orders{
id int [pk, increment]
completed boolean
buyer_email varchar
listing_id int [ref: > listings.id]
}
您不应该添加一个有序列,因为这将导致比它所修复的问题多得多的问题:并发性就是其中之一
相反,您可以选择您的物品并排除有订单的物品:
选择b.title、b.isbn10、b.amazon\u used\u price、b.edition、b.image、,
l、 id、l.价格、l.上市日期、l.卖家\电子邮件
从清单l左键连接l.book_id=b.id上的图书b
l.id=o.id上的左连接顺序o
其中是空的o.id
按b.title、b.isbn10排序
我假设了一些事情,包括您想要的记录的顺序,但您应该从中了解到这一点。大量连接不会导致大量数据库紧张吗?我使用的是Aurora serverless,所以我每计算小时收费。@Daniel,如果你有外键,那么就没有了,数据库引擎在连接表方面非常有效。