いくつかの製品を説明する何千行ものテーブルがあります。製品の機能に関する複数の列があります。例えば
productid productname isOnSale HasVeteranDiscount IsTaxExempt Otherdata1 Otherdata2 ...
1 rice 0 1 1 info1 info2
2 camera 1 0 0 info3 info4
別のテーブル
[Productparts]
Partid parentproductid isGeneric CanBeSoldSeperate OtherData1 Otherdata2 ...
別の表:
ProductId ItemsSold Datesold
1 23 4/20/2013
productfeature を説明する列挙型があります。
[Flags]
public enum ProductFeature : short
{
None = 0,
isOnSale = 0x001,
HasVeteranDiscount = 0x002,
IsTaxExempt = 0x004,
isGeneric = 0x008,
CanBeSoldSeperate = 0x010,
}
統計分析のために、3 つのテーブルからの上記のデータを、該当するすべての製品機能のビットごとの or 演算された整数として、そのカテゴリに分類される製品の数と、次のような製品の販売数とともに 1 つのテーブルに挿入する必要があります。
ProductTrend
ProductFeatures ItemsSold MonthSold
たとえば、ある製品が販売されていて、一般的な部品が 1 つ以上あり、個別に販売できる部品が 1 つ以上ある場合、その 25 です。別の製品には、ベテラン割引があり、個別に販売できる部品が 1 つ以上ある場合、その 18 [HasVeteranDiscount] | | CanBeSoldSeperate = 18] テーブルは次のようになります。
ProductTrend
ProductFeatures ItemsSold MonthSold
25 34 April
18 12 May
ここで助けが必要な最も重要な部分は、複数のテーブルの複数の列からの製品に関するデータを、ビット単位の演算を使用して 1 つの整数列 productFeatures に結合する方法です。