簡體   English   中英

在Rails中存儲大量的布爾值

[英]Storing large amount of boolean values in Rails

我要在Rails應用程序使用的數據庫中存儲大量布爾值-它每天需要在單個記錄中存儲60個布爾值。 在Rails中執行此操作的最佳方法是什么?

我需要編程或執行的查詢:* CRUD *總結每天有多少個true值*可能(但不一定是)其他報告,例如在每個字段中記錄true值的頻率

更新:這是為了存儲可能在上午9點至下午1點之間間隔5分鍾的事件,也可能不會發生。 如果發生,那么我需要將其設置為true ,否則請設置為false 測量是手動完成的,用戶將使用網站上的復選框報告這些信息。 可能會有一些小的更新,但大多數情況下只是一次輸入,然后如上所述進行查詢。

更新2 :每一位用戶每天60個值,將有1000-2000個用戶。 如果沒有可以幫助解決此問題的庫,我將尋求最簡單的方法,然后在遇到性能問題時再處理它。 每天,用戶都通過在網站上選中所需的復選框來報告事件,因此通常每天只有一個數據輸入時刻(如果不是每天執行,則很少輸入)。

這取決於許多不同的事物。 您需要運行回調嗎? 您是否需要實例化AR對象? 這些更新的頻率是多少? 它是經常執行但一次執行的次數不是很多,還是一次執行的很少但很少? 您可以將這些布爾值表示為掩碼嗎? 我們當然需要更多的背景信息。

為什么需要將這些記錄在一個記錄中? 您不能使用“天”表將它們綁在一起,然后在“事件”表中使用day_id列嗎?

在Day模型中指定其“ has_many:events”,並在Event模型文件中指定其“ belongs_to:day”。 然后,您可以找到一天中的所有事件,並帶有當天的ID。

對於第三天的記錄,您需要執行以下操作:

this_day = Day.find 3

然后,您可以使用“ this_day.events”獲取當天的所有事件。

您需要確定自己希望用來標識每天的事物,以便使用您了解的東西查詢一天的事件。 我上面用來查找它的id列可能無法正常工作。

例如,您可以使用每天第一時間的時間戳來執行此操作。 或者,您可以依賴表的'created_at'列在一天的開始和結束之間

而且,您將需要確定所使用的時區以及如何將其存儲在數據庫中。

而且,如果您的數據將在午夜附近存儲,則夏時制也可能是一個問題。 我發現最好使用GMT來避免該問題。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM