sql >> データベース >  >> RDS >> Mysql

注文の合計金額を保存、処理する方法、ordersDetailsスキーマ?

    はい、通常、データベース内の他のデータに基づいて事前に計算された値をデータベースに保存します。しかし、必ずしもあなたが言及した理由のためではありません。 MAX_JOIN_SIZEで問題が発生したことはありません 。

    計算値を保存する主な、そしておそらく唯一の理由は速度です。したがって、それほど頻繁に変更されず、大量のデータを使用するクエリで使用される可能性があり、したがって、それらを使用しなかった場合は遅すぎる可能性がある値に対してこれを行います。

    例:データベース内のすべての注文の平均値を知りたい場合、注文の合計がすでにあると、クエリははるかに高速になります。

    なぜ、そしてどのように値を更新するかは完全にあなた次第です。ただし、一貫性を保つ必要があります 。 MVCパターンを使用する場合は、それをコントローラーに統合するのが理にかなっています。または簡単に言うと、値の1つを変更する可能性のあるフォームが送信され、そこから事前に計算された値が計算される場合は常に、それを再計算する必要があります。

    これは、「正規化」が完全に維持されていない明確なデモンストレーションです。それは本当にきれいではありませんが、時にはそれだけの価値があります。もちろん、計算された値は「新しい」情報を表しているため、「正規化」に反することはないと主張することもできます。



    1. SQLServerの地理データ型を理解する方法

    2. MySQLでのタイムゾーン処理のベストプラクティスは何ですか?

    3. SQLでCASEステートメントを使用する方法を学ぶ

    4. current_timestamp SQLに10秒を追加する方法(Oracle)