我是数据库设计的新手,我正在为练习设计一个书店数据库。我有以下表格,可以搜索符合特定条件的书籍:
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(product_ID (pk), Amnt_in_Stock, product_name, product_description, book_id(fk))
book_id会是一个可选的1:1关系吗?
谢谢。
答案 0 :(得分:0)
这取决于要求,尽管这只是一种练习。如果要求说明将图书的库存与其他项目分开,那么您将有一个单独的表格(即其他项目)。否则,您将其作为一个表进行,您需要找到一种方法来连接这两个表以用于库存目的。
至于为另一个项创建另一个表,那么就唯一标识而言,这不会是一个问题,您可以为每个项创建一个唯一的Item Code
,或者您可以创建一个Auto Increment
{ {1}}代替它。
对我而言,最好将它分开,因为虽然有相似之处,但属性是多种多样的。与书名,流派,ISBN一样,作者对于其他项目(例如糖果,钢笔和期刊)也不能说是相同的。
你可能会这样做:
Primary Key
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_code
或other_items
book_id
表。
您还可以添加Book
来跟踪广告资源中的内容,例如:
Supply History