我正在构建一个需要支持重复事件的组日历应用程序,但是我为处理这些事件而想出的所有解决方案都像黑客一样。我可以限制一个人可以看到的距离,然后立即生成所有事件。或者,我可以将事件存储为重复事件,并在日历上向前看时动态显示它们,但是如果有人想更改事件特定实例的详细信息,则必须将它们转换为正常事件。
我敢肯定有更好的方法可以做到这一点,但我还没有找到。对重复事件建模的最佳方法是什么,您可以在其中更改或删除特定事件实例的详细信息?
(我使用的是Ruby,但是请不要让它限制您的答案。但是,如果有Ruby特定的库或其他东西,那么很高兴知道。)
我会在以后的所有重复事件中使用“链接”概念。它们将动态显示在日历中,并链接回单个参考对象。事件发生后,链接断开,该事件成为独立实例。如果您尝试编辑重复发生的事件,则提示您更改所有将来的项目(即更改单个链接的引用)或仅更改该实例(在这种情况下,将其转换为独立实例,然后进行更改)。后者的情况有些问题,因为您需要跟踪所有转换为单个实例的将来事件的重复列表。但是,这完全是可行的。
因此,从本质上讲,有2类事件-单个实例和重复发生的事件。