私はAttackReportとAttackReportRoundのような2つのモデルを持っています。各レポートは多くのラウンドを持つことができます。それは攻撃の仕方を記述します。これは私が最初にやりたかったことをどのようにしてデザインしたかです。しかし、例えば30ラウンドの攻撃がある場合、AttackReportRoundテーブルはすぐに大きくなりすぎる可能性があります。Railsのシリアル化。それはここでうまく適用されますか?
したがって、可能な限り、または最も効率的な方法で1行に格納する方法を考えていました。攻撃ラウンドでは、攻撃側のヒット、ダメージ、防御側のヘルスなどの情報が保持されます。
私は、単一のattackReportエントリで各ラウンドのデータをシリアル化することを考えていました。おそらく、カンマ区切りの値またはある種のレール直列化を使用していました。
この場合、あなたはどうしますか?
私はこのテーブルが本当に速く成長すると思っています。 1日あたり1000回の攻撃が少なすぎると想像してみましょう.30,000回の試合のようなものかもしれません。長期的には悪いようですが、データベースは大量でもうまくいくと私は同意します。私はインデックスについても考えてきましたが、テーブル内にあまりにも多くのエントリーがあるという考えはまだ不快です。たぶん、シリアル化は道のりですが、レールは完全なモデルのシリアル化しかサポートしていないと思いますが(私の場合は値が私によって定義されています)、それをチェックする必要があります。 – Spyros
十分に公正。たぶんシリアル化が最善の方法です。 Railsにモデルの特定の属性のみを直列化するように伝えることができるかどうかはわかりませんが、そうでなければハッシュの配列を直列化することを検討できます(各ハッシュはラウンドを表します)。 –