カート購入データモデルを作成しようとしています。クレジットや製品など、ユーザーが購入できるものはさまざまです (それぞれに個別の属性セットがあります)。トランザクションが正常に完了すると、各アイテムの購入がテーブルに保存されます (それぞれクレジットと購入など)。
私が知りたかったのは、ユーザーがトランザクション中にどのアプローチに従うべきかということです (アプローチには長所と短所が記載されています)
ユーザーが項目に対して選択した属性を一時テーブル (temp_credit_purchases や temp_product_purchases など) に保存し、そのレコードを実際のテーブル (クレジットと購入) に挿入します。
長所
- 失敗したすべてのトランザクションを削除することができ、実際のテーブルに自動インクリメントされた ID が欠落することはほとんどありません。
短所
- 2 回の挿入と 1 回の選択 - 挿入は更新よりも重い (これは 2 番目のケースで発生する)
一時的な状態で実際のテーブルにデータを挿入します
長所
- より最適 (1 回の挿入と 1 回の更新のみ)
短所
- テーブルには、他のユーザー向けモジュールでクエリを実行するために使用される不要な行が大量に存在します (これにより、クエリが遅くなる可能性があります)。
各アプローチの長所と短所を列挙することはできますが、決定的な決定を下すことはできません。これについて考えるのを手伝ってください。