我将在Rails应用程序使用的数据库中存储相当大量的布尔值 - 它需要每天在单个记录中存储60个布尔值。在Rails中执行此操作的最佳方法是什么?
我需要编程或执行的查询:
* CRUD
*总结每天true
个值的数量
*可能(但不是非常)其他报告,例如每个字段中记录true
的频率
更新:这是为了存储在上午9点到下午1点之间可能会或可能不会以5分钟间隔发生的事件。如果它发生,那么我需要将其设置为true
,如果不是false
。测量是手动完成的,用户将使用网站上的复选框报告这些信息。可能会有一些小的更新,但大多数情况下它只是一次性输入,然后是上面列出的查询。
更新2 :每位用户每天60个值,将有1000-2000个用户。如果没有一些库可以帮助解决这个问题,那么我将采用最简单的方法并在以后处理它,如果我遇到性能问题的话。每天用户通过检查网站上所需的复选框来报告事件,因此通常每天只有一个数据输入时刻(如果没有每天进行,则会很少)。
答案 0 :(得分:0)
这取决于很多不同的事情。你需要回调才能运行吗?你需要实例化AR对象吗?这些更新的频率是多少?是经常这样做但一次不是很多或很少但一次又一堆?你能代表这些布尔作为面具吗?我们肯定需要更多的背景。
答案 1 :(得分:0)
为什么这些需要在一个记录中?你不能使用'days'表将它们绑在一起,然后在'events'表中使用day_id列吗?
在Day模型中指定它'has_many:events'并在事件模型文件中指定它'belongs_to:day'。然后你可以找到一天的所有活动,只有当天的id。
对于第三天的记录,你要这样做:
this_day = Day.find 3
然后你可以使用'this_day.events'来获取当天的所有事件。
您需要决定每天使用什么来识别,以便使用您理解的内容查询一天的事件。我上面用来找到它的id列可能不起作用。
例如,您可以使用每天的时间戳第一时间来执行此操作。或者您可以依赖表格的“created_at”列在一天的开始和结束之间
您需要确定您正在使用的时区以及如何将其存储在数据库中。
如果您的数据将存储在接近午夜的时间,夏令时也可能成为问题。我发现最好使用GMT来避免这个问题。
祝你好运。