私は2つのテーブルを持っています。最初のものはuser_id + いくつかの数値 (double) を持つ数値であり、各 user_id に対して複数の行を持つことができるとしましょう。そして、user_id(PRIMARY) + table numbersからのこのユーザーのすべての数字の積を持つ別のユーザーがいます。
レコードがnumberに挿入または削除されると、 users.productを再計算する必要があります。一度に挿入されるレコードは 1 つだけなので、次のクエリで実行できます。
UPDATE users SET product=product*{number} WHERE user_id={some_id}
ただし、レコードが一括で削除されるため、これを行うには醜いコードが必要になります。積を再計算する方が簡単です。しかし、PRODUCTのような機能はありません。使うことができます
exp(sum(log(coalesce(*number*,1)))
しかし、数字の間違った積に終わらないかどうかはわかりません。数値は 1.00 から 9.99 の範囲になります。この方法でどの程度の精度が失われる可能性がありますか?