2012-03-22 19 views
1

可能性の重複:
Database design: Calculating the Account Balance
should the user's Account balance be stored in the database or calculated dynamically?データベース設計:アカウント残高を保存する場所

ユーザーの口座残高とその理由を保存するのに最適な場所ですか?

1)「トランザクション」テーブル、トランザクションが発生した時点で計算するか、

2のように)「アカウント」表、ユーザーログインまたはトランザクションが発生した時に毎回更新しました。

+1

口座残高は口座情報と結びついているはずですから、私は口座表を言うでしょうか? –

答えて

1

正規化ルールによれば、他のデータから計算できるものは保存しないでください。

これを言っても、それを保存しない銀行はありますか?これは、システムの多くの部分で残高が使用され、残高を必要とする度にすべての取引を計算することができないため、パフォーマンスを向上させるために非正規化する場所です。

一晩計算される連結値を持つ代わりに、前回の連結以降の取​​引に基づいて値を調整することもできます。

+0

それは可能ではないだけでなく、合法でもありません。実際には口座価値は必要ありませんが、数値と時間枠は必要です。監査の目的で、その時点でどのような価値があったのかを知る必要があります。 – TomTom

+0

@TomTomも法的な洞察に感謝します。私は技術的な面から純粋に来ていましたが、あなたも法律を考慮する必要があります。 – Aliostad

+2

はい。アカウントのステートメントを覚1月13日からの1つは、あなたが数週間後に取引をキャンセルしても同じように見えなければなりません;)あなたは決して値を修正しません。プラスあなたはトランザクションがまだ有効ではない(将来の予定日);) – TomTom

関連する問題