2012-05-19 138 views
0

我正在爲我的投資組合網站構建一個簡單的網上商店。在這個網上商店有兩種(主要)類別:電影和遊戲。Mysql數據庫結構webshop

當然這些類別也需要子類別,如:game_type,game_platform,movie_type,movie_quality。我現在的問題是:做這件事的最好方法是什麼?

對於我的產品和類別我現在有3個表:

webshop_products (wpID, wpName, wpDescription, wpPrice, wpPicture) 
webshop_categories (wcID, wcName) 
product_category (wpcID, wpID, wcID) -> this is my join table. 

我自己的想法是在表webshop_categories我的兩個額外列:wcType(ENUM「子」,「主」) 和wcParent (例如,子類別操作可以將遊戲或電影類別ID作爲父項)

此解決方案是否好,或者有人有更好的主意?

感謝和問候埃裏克

+0

這取決於你想如何使用數據。 MySQL不支持遞歸函數,所以它不適用於存儲分層數據的鄰接列表模型(這就是你所提出的),如果你想要獲取所有類別(包括他們的祖先)給定產品。爲此,您可能需要考慮使用嵌套集合或封閉表格。請參閱[本答案](http://stackoverflow.com/a/192462/623041)瞭解更多信息。 – eggyal

回答

1

你可以只添加這同時將指向父類ID wcParent列,如果它被設置,它會自動意味着它是一個子類別 - 無需額外wcType列。

此外,刪除product_category中的wpcID,並將wpID和wcID設置爲主索引。你真的不需要額外的專欄。