繁体   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