我有一個現有的成熟模式,我們需要添加一些新的產品屬性。例如,我們有Products.Flavor,現在需要添加新的屬性,例如Weight,Fragrance等。我不考慮繼續擴大Products表格,而是考慮其他一些選項。首先是一個新的屬性表,它將有效地作爲任意屬性的屬性包,以及一個ProductsAttributes表,用於存儲特定產品屬性的映射(和值)。這是實體 - 屬性 - 值(EAV)模式,我已經瞭解它。另一種選擇是向名爲Attributes的Products表添加一個新的列,該表是XML類型。在這裏,我們可以任意添加屬性到任何產品實例而無需添加新表格。實體屬性值(EAV)與XML列對於新產品屬性
每種方法的優缺點是什麼?我正在使用SQL Server 2008和ASP.NET 4.0。
(Bookarking現在這個問題,所以我可以稍後再回來,upvote所有的「你真的不想這樣做」的答案) – 2011-03-21 14:25:28
這兩個選項中,我真的不想做的是哪一個? ;-) – 2011-03-21 14:26:40
將新列添加到產品表時出現什麼問題?這些屬性僅與產品的某個子集相關嗎? – tster 2011-03-21 14:48:42