既存の成熟したスキーマがあり、それにいくつかの新しいProduct属性を追加する必要があります。たとえば、Products.Flavorがあり、Weight、Fragranceなどの新しい属性を追加する必要があります。Productsテーブルを拡大し続けるのではなく、他のいくつかのオプションを検討しています。1つ目は、任意の属性のプロパティバッグとなる新しいAttributesテーブルと、特定の製品の属性のマッピング(および値)を格納するProductsAttributesテーブルです。私が理解するようになったので、これはEntity-Attribute-Value(EAV)パターンです。もう1つのオプションは、属性と呼ばれるXMLタイプのProductsテーブルに新しい列を追加することです。ここでは、新しいテーブルを追加せずに、任意の製品インスタンスに属性を任意に追加できます。
各アプローチの長所/短所は何ですか?SQLServer2008とASP.NET4.0を使用しています。