Database design 书店的ER图

Database design 书店的ER图,database-design,entity-relationship,Database Design,Entity Relationship,我有一个书店应用程序,我想设计它的数据库。首先,我需要的是E-R图 (这不是家庭作业) 它有这么简单的场景: 每个用户可以有0、1或更多的图书订单 每种类型的书都有不止一个实例 这是最好的设计吗 书籍和订单项之间应该有链接,而不是书籍和订单。“订单”表应该是中心表。一个简单的结构是 CUSTOMERS id name adddress, etc ORDERS id customer (foreign key to customers table) curdate status (ope

我有一个
书店应用程序
,我想设计它的数据库。首先,我需要的是E-R图

(这不是家庭作业)

它有这么简单的场景:

  • 每个用户可以有0、1或更多的图书订单

  • 每种类型的书都有不止一个实例

这是最好的设计吗


书籍和订单项之间应该有链接,而不是书籍和订单。“订单”表应该是中心表。一个简单的结构是

CUSTOMERS
id
name
adddress, etc

ORDERS
id
customer  (foreign key to customers table)
curdate
status  (open, closed)
% discount

ORDERITEMS
id
order    (foreign key to orders table)
book     (foreign key to books table)
quantity
price    
% discount
status (open, closed, ordered from distributor?)

BOOKS
id
title
author
costprice
salesprice
isbn 

好吧,如果你不想让人们投票来结束你的问题,试着重新表述,使它更具体。人们通常不喜欢基于意见的问题,比如“这是最好的解决方案吗?”很好,那么表基数应该如何呢?例如,我知道
用户
订单
之间的基数是
1-n
。(如果我没有弄错的话)是
订单
订单项
基数可以是
1-1
?一对多-每个订单有几个订单项,但每个订单项元组只有一本书(但可能有几个副本)。当然,一本书可以出现在许多订单项中。@SajjadHTLO:我不理解你的评论。OrderItems需要其父订单的外键(这是“订单”字段)。'id'是它自己的主键。我想您可以从“order”和“book”创建一个复合主键,但这将阻止您在一个订单中订购同一本书两次(例如,一次标准包装和一次礼品包装)。因此,最好为orderitems提供一个唯一的自动密钥。