[解決済み] データベースの設計 口座残高の計算
質問
口座残高を計算するためのデータベースはどのように設計すればよいのでしょうか。
1) 現在、私は取引テーブルから口座残高を計算しています。 取引テーブルには、説明と金額などがあります。
そして、私はすべての"amount"の値を合計し、ユーザーの口座残高を計算します。
私はこれを友人に見せましたが、それは良い解決策ではないと言われました。私のデータベースが大きくなったとき、遅くなるのでは?彼は、計算された口座残高を格納するために別のテーブルを作成するべきだと言いました。これを実行すると、2 つのテーブルを維持する必要があり、口座残高テーブルが同期されなくなる可能性があるため、リスクがあります。
何か提案はありますか?
EDIT : オプション2:私は私のトランザクションテーブル"バランス"に余分な列を追加する必要があります。 これで、私は私の計算を実行するためにデータの多くの行を通過する必要はありません。
例 ジョンは100ドルのクレジットを購入し、60ドルの負債を抱え、その後200ドルのクレジットを追加しました。
金額100ドル、残高100ドル。
金額-$60、残高$40。
金額200ドル、残高240ドル。
どのように解決するのですか?
古くからある問題ですが、一度もエレガントに解決されたことがありません。
私が働いてきたすべての銀行パッケージは、口座の実体と一緒に残高を保存します。移動の履歴からその場で計算することは、考えられません。
正しい方法は
- 移動テーブルには、各勘定科目の「開始残高」トランザクションがあります。 トランザクションがあります。これは数年後に これは、数年後に古い移動を移動する必要があるときに を移動する必要があります。 テーブルから履歴テーブルに移動させる必要があります。 テーブルへ移動する必要があるときに必要になります。
- 口座エンティティには、残高 フィールド
- ムーブメントテーブルにトリガーがあり テーブルのトリガーがあります。 の残高を更新するトリガがあります。明らかに、それはコミットメント 制御を行います。もし、トリガーを持つことができないのであれば、必要なのは ユニーク モジュールが必要です。このモジュールはコミットメントコントロールのもとで動きを書き込みます。
- オフラインで実行できる「セーフティネット」プログラムも オフラインで実行でき、すべての残高を再計算し すべての残高を再計算し、表示する(そして オプションで誤った残高を修正する を表示します。これはテストに非常に有効です。 テストに非常に便利です。
一部のシステムでは、すべての動きを正の数として保存し、from/to フィールドを反転させるか、フラグを使用してクレジット/デビットを表現します。個人的には、クレジット フィールド、デビット フィールド、および署名された金額を好むので、これによって逆転がはるかに容易になります。
これらの方法は、現金と有価証券の両方に適用されることに注意してください。
特にコーポレートアクションの場合、1 つ以上の買い手と売り手の現金残高、それらのセキュリティポジションの残高、および場合によってはブローカー/預託を更新する単一のトランザクションに対応する必要があります。
関連
-
[解決済み] 等値演算で "SQL_Latin1_General_CP1_CI_AS" と "Latin1_General_CI_AS" の照合の競合を解決できない
-
[解決済み] パーセント値を保持するための適切なデータ型?
-
[解決済み] COUNTフィールドが正しくないか、構文エラーです。
-
[解決済み] SQL Server の .sql ファイルとは何ですか?
-
[解決済み] データベースとスキーマの違い
-
[解決済み] 日付から年内の週番号を取得する
-
[解決済み] SQLサーバーを使用して文字列を切り詰める方法
-
[解決済み] データベース内の全テーブルのサイズを取得する
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQL Server データベース復元エラー:指定されたキャストは有効ではありません。(SqlManagerUI)
-
[解決済み】フラットファイルの日付カラムで「キャスト指定に無効な文字値があります」を修正する方法とは?
-
[解決済み] SQL Serverで小数点の後に2桁の数字を表示させる方法
-
[解決済み] SQL Server の更新コマンドでエラー - "現在のコマンドで深刻なエラーが発生しました".
-
[解決済み] SQL Agent を使用して SSIS パッケージを実行する際の問題 - "DTSER_FAILURE(1)" で失敗します。
-
[解決済み] データ損失の可能性があるため、スキーマの更新を終了します。
-
[解決済み] リンクサーバーとしてローカルデータベースを使用する場合、「Deferred prepare could not be completed」エラーが発生する。
-
[解決済み] スカラー変数を宣言する必要があります。
-
[解決済み] SQL Serverは、ビュークエリでLEFT JOINをLEFT OUTER JOINに置き換えます。
-
[解決済み] データベース内の全テーブルのサイズを取得する