【问题标题】:Modeling resource availability over time with exceptions in Rails在 Rails 中建模资源可用性随时间的变化
【发布时间】:2011-03-19 15:44:17
【问题描述】:

我正在为如何使用 Rails 中可用的工具、gem 或插件对资源及其可用性进行建模而苦苦挣扎。

基本上每个资源在一周的每一天 (0,1,2,3,4,5,6) 的典型可用性为 0..24 小时。但是,会有一些例外情况需要考虑,例如假期或特殊事件应该推翻一周中那一天的默认设置。

我可以想到两种广泛的方法(尽管我确信还有更多)。一种会在每个请求上查询数据库并测试逻辑以查看当时资源是否可用。随着系统的增长,这可能会变得很麻烦(耗时)。另一个将每 x (5?) 分钟运行一个进程 (cron?) 以在每个资源上设置一个布尔值 (AVAILABLE),该资源取决于其可用性规则。

这些是可以想象的广泛方法,但如何处理模型/类是我真正可以使用一些建议的地方。

有什么想法吗?经验?我应该注意的宝石/插件?

【问题讨论】:

    标签: ruby-on-rails database database-design calendar data-modeling


    【解决方案1】:

    不确定在您的应用程序中的适用性,但有一个非常不错的 Ruby gem,名为 ice_cube,可用于对重复日期和时间进行建模。您可以为您的资源设置一个时间表,指定它们的可用性规则和例外情况。每个资源的时间表可以作为 YAML(比如在文本字段中)序列化到数据库中。

    当您需要查看特定资源是否可用时,您只需将其取消序列化并询问ice_cube 相关日期/时间是否与其规则相交。它也非常快速高效。

    【讨论】:

    • 您是否知道使用 ice_cube 可以轻松/快速地搜索数千条记录以找到在给定时刻“可用”的少数记录?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 2012-09-06
    • 2011-01-16
    相关资源
    最近更新 更多