0

我是数据库设计的新手,我正在设计一个书店数据库以供练习。我有以下表格,可让我搜索符合特定条件的书籍:

SERIES(series_id (pk),  series_title)

AUTHOR(author_id (pk), author_name, author_country, author_birthdate)

BOOK(book_id(pk), book_title, book_genre, author_id(fk), series_id(fk))

但是,商店也出售同样需要追踪但没有独特属性的随机产品(钢笔、糖果、日记本等)。以下是构造INVENTORY表的正确方法 吗?

INVENTORY(product_ID (pk), Amnt_in_Stock, product_name, product_description, book_id(fk)) 

book_id 是可选的 1:1 关系吗?

谢谢你。

4

1 回答 1

0

这取决于要求,尽管这只是您的练习。如果要求将书籍的库存与其他物品分开,那么您将有一个单独的表格(即其他物品)。否则,您将其作为一个表,并且您需要找到一种方法来连接这两个表以用于库存目的。

至于为另一个项目创建另一个表,那么就唯一标识而言这不是问题,您可以Item Code为每个项目创建一个唯一的,或者您可以Auto Increment Primary Key为它创建一个。

对我来说最好把它分开,因为虽然有相似之处,但属性是多种多样的。就像书名、流派、ISBN 一样,对于糖果、钢笔和期刊等其他物品,作者不能说相同。

你可能会这样:

SERIES(series_id (pk),  series_title)
AUTHOR(author_id (pk), author_name, author_country, author_birthdate)
BOOK(book_id(pk), book_title, book_genre, author_id(fk), series_id(fk), original_price, selling_price)
OTHER_ITEMS(item_code(pk), description, qty_on_hand, original_price, selling_price)

SOLD_ITEMS(SoldItemID (pk), reference_code (FK), Books (boolean), Qty_Sold, Price_Sold, Date_Sold, Cashier)

reference_code要么是表的item_codeother_items要么book_idBook表的。

您可能还可以添加Supply History以跟踪库存中的情况,例如:

SUPPLY_HISTORY(SupplyHistoryID (PK), OrderCode, SupplyDate, ReferenceCode, Books (boolean), Quantity, OriginalPrice, SupplierID (FK))
SUPPLIER (SupplierID (PK), SupplierName, Contact_Person, Phone, Email)
于 2013-10-28T05:53:39.570 回答