0

しばらくの間、ある問題に苦しんでいましたが、解決策が正しいかどうかまだわかりません。助けてください. PointsTable と言うファクト テーブルが 1 つあります。テーブルの目的は、各個人が持っているポイント数を追跡​​することです。私の問題は、私が追跡しなければならない(ディメンションテーブルを持っている)複数の方法でポイントを獲得することです。ポイントを購入 ( PurchaseTable )
転送 ( TransferTable )
販売 ( SalesTable )する
などし
て、ポイントを獲得したり失ったりすることができます。構造は次のようになります:
PointsTable:
PointsTable_ID
PointsTable_points
PointsTable_date
PointsTable_Reason (購入、譲渡、売却)
PurchaseTable_ID
TransferTable_ID
SalesTable_ID

それぞれの理由に応じて、ID 列には適切なデータが入力されますが、残りの ID フィールドは空白のままになります。空白のフィールドを使用せずに、この問題を解決する別の方法はありますか?

ありがとうございました

4

2 に答える 2

0

非常に少ない情報でモデルの評価を行うのは困難です。

テーブルを組み合わせて単一の次元テーブルを作成することはできません: 購入、転送、および販売? このディメンション テーブルには、「P、F、または S」を示すフィールドが含まれている場合があります。

ファクト テーブルには、このディメンション テーブルへの単一の外部キー (空白フィールドなし) が格納されますか?

于 2013-01-01T22:29:55.423 に答える
0

外部キーを空白のままにすることはできません。空白のままにしたいすべての ID に対して、ファクト テーブルに 0 または -1 を入力します。各ディメンションには、トランザクションが発生しなかったことを示すために 0 または -1 にキー設定された行があります。

于 2013-01-09T21:57:12.850 に答える