0

Rails アプリケーションで使用されるデータベースに大量のブール値を格納する必要があります。1 日あたり 1 つのレコードに 60 個のブール値を格納する必要があります。Railsでこれを行う最良の方法は何ですか?

プログラムまたは実行する必要があるクエリ: * CRUD *true毎日の値の合計数 * 可能性としては (ただし必ずしもそうではありません) true、各フィールドに記録される頻度などの他のレポート

更新:これは、午前 9 時から午後 1 時までの 5 分間隔で発生する場合と発生しない場合があるイベントを保存するためのものです。true発生した場合は に、そうでない場合はに設定する必要がありfalseます。測定は手動で行われ、ユーザーはウェブサイトのチェックボックスを使用してこれらの情報を報告します。小さな更新があるかもしれませんが、ほとんどの場合、それは 1 回のエントリであり、上記のようにクエリを実行します。

更新 2 : 1 日あたり 60 の値は 1 ユーザーあたりであり、1000 ~ 2000 人のユーザーが存在します。それに役立つライブラリがない場合は、最も単純なアプローチを採用し、パフォーマンスの問題が発生した場合は後で対処します。ユーザーは毎日、ウェブサイトで必要なチェックボックスをチェックしてイベントを報告します。そのため、通常、データ入力の瞬間は 1 日 1 回です (毎日ではない場合はほとんどありません)。

4

2 に答える 2

0

これらを単一のレコードにする必要があるのはなぜですか? 「days」テーブルを使用してそれらをすべて結び付けてから、「events」テーブルで day_id 列を使用できませんか?

Day モデルで「has_many :events」と指定し、Event モデル ファイルで「belongs_to :day」と指定します。次に、その日の id だけでその日のすべてのイベントを見つけることができます。

3 日目の記録では、次のようにします。

this_day = Day.find 3

次に、「this_day.events」を使用して、その日のすべてのイベントを取得できます。

毎日の識別に何を使用するかを決める必要があるため、理解できるものを使用してその日のイベントを照会します。上記で使用した id 列は、おそらく機能しないでしょう。

たとえば、毎日の最初の瞬間のタイムスタンプを使用してそれを行うことができます。または、テーブルの「created_at」列が 1 日の開始と終了の間にあることに依存することもできます

また、使用しているタイムゾーンと、これがデータベースにどのように格納されるかについても確認する必要があります。

また、データが真夜中近くに保存される場合は、夏時間も問題になる可能性があります。この問題を回避するには、GMT を使用するのが最善だと思います。

幸運を。

于 2013-11-06T00:05:28.490 に答える