[英]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.