我開始了一個新的應用程序,現在我正在尋找兩條路徑,並且不知道哪個是繼續的好方法。
我正在建設類似電子商務網站。我有一個類別和子類。
問題是現場有不同類型的產品,並且每個都有不同的屬性。這些產品屬性必須是可過濾。
這是我最初的數據庫設計:我應該使用EAV數據庫設計模型還是使用大量表
Products{ProductId, Name, ProductCategoryId}
ProductCategories{ProductCategoryId, Name, ParentId}
CategoryProperties{CategoryPropertyId, ProductCategoryId, Name}
ProductPropertyValues{ProductId, CategoryPropertyId, Value}
現在一些分析我看,這樣的設計其實是EAV模型,我讀了人們通常不建議採用這種設計後。
似乎動態SQL查詢是一切都需要。
這是一種方法,我現在正在查看它。
我看到的另一種方式可能被命名爲很多工作方式但如果它更好,我想去那裏。 爲了使表
Product{ProductId, CategoryId, Name, ManufacturerId}
,並使數據庫至極表繼承手段,使表像
Cpus{ProductId ....}
HardDisks{ProductId ....}
MotherBoards{ProductId ....}
erc. for each product (1 to 1 relation).
我明白,這將是一個非常大的數據庫,非常大的應用領域,但它比使用EAV設計的選項更好,更容易和更好的性能。
我不同意你的初始設計是EAV。 – 2013-03-06 15:53:31
ProductPropertyValues表不是EAV?來吧。 – 2013-03-06 16:09:44
你爲什麼認爲它不是? – 1110 2013-03-06 19:03:42