私が以下に提供した情報に基づいて、別々のテーブルを異なるタイプの契約を保持する1つのテーブルに非正規化するのが良い考えかどうかについてあなたの意見を教えてください?..賛否両論は何ですか?..誰かがこれを試みましたかbefore?..銀行システムはCIF(顧客情報ファイル)[マスター]を使用します。顧客はさまざまな種類の口座、CD、住宅ローンなどを持ち、トランザクションコード[種類]を使用しますが、それらを1つのテーブルに保存しますか?
ローン、購入、販売のトランザクション用に別々のテーブルがあります。これらの各テーブルの行は、次の方法で対応する顧客に結合されます。
customer.pk_id SERIAL = loan.fk_id INTEGER;
= purchase.fk_id INTEGER;
= sale.fk_id INTEGER;
これらのテーブルには、ポーン、購入、販売という同じ商品を中心に展開する共通のプロパティが非常に多いため、これらを「契約」という1つのテーブルに統合して実験し、次の列を追加しました。
Contracts.Type char(1) {L=Loan, P=Purchase, S=Sale}
シナリオ:
顧客は最初に商品をポーンし、2回の利息を支払い、次にその商品を質屋に販売することを決定します。質屋は商品を在庫に入れ、最終的に別の顧客に販売します。
たとえば、次のような汎用テーブルを設計しました。
Contracts.Capital DECIMAL(7,2)
ローン契約では、ポーンの元本を保持し、購入では購入価格を保持し、販売では販売価格を保持します。
このデザインは良いアイデアですか、それとも別々に保つ必要がありますか?