【发布时间】:2010-11-10 02:21:01
【问题描述】:
我目前正在开发一个允许人们为在线广播电台安排“节目”的应用程序。
我希望用户能够设置重复事件,例如:-
“狂躁星期一”节目 - 每周一 9-11 “月中疯狂” - 每个月的第二个星期四 “这个月的新音乐” - 每个月的第一天。
在您看来,最好的建模方法是什么(基于 MVC/MTV 结构)。
注意:我实际上是在 Django 中编写代码的。但我更感兴趣的是它背后的理论,而不是具体的实现细节。
【问题讨论】:
我目前正在开发一个允许人们为在线广播电台安排“节目”的应用程序。
我希望用户能够设置重复事件,例如:-
“狂躁星期一”节目 - 每周一 9-11 “月中疯狂” - 每个月的第二个星期四 “这个月的新音乐” - 每个月的第一天。
在您看来,最好的建模方法是什么(基于 MVC/MTV 结构)。
注意:我实际上是在 Django 中编写代码的。但我更感兴趣的是它背后的理论,而不是具体的实现细节。
【问题讨论】:
通过阅读其他帖子,Martin Fowler 将重复事件描述得最好。 http://martinfowler.com/apsupp/recurring.pdf
有人为 Java 实现了这些类。 http://www.google.com/codesearch#vHK4YG0XgAs/src/java/org/chronicj/DateRange.java
【讨论】:
啊,重复的事件 - 我生命中的祸根之一,还有时区。日历是困难。
您可能希望根据RFC2445 对此进行建模。但是,这很可能会为您提供比您真正想要的更多的灵活性和复杂性。
需要考虑的几点:
我意识到这是一个需要考虑的事项列表,而不是一个明确的答案,但我认为在尝试制定解决方案之前定义问题的参数很重要。
【讨论】:
我有一个想法,在保存原始事件时应该生成重复事件,并使用新模型。这意味着我不会在每次加载日历时都进行随机处理(并且意味着我也可以,例如,取消系列中的一个“显示”),但也意味着我必须将其限制在某个时间范围内,所以如果有人说,一年后,他们不会看到这些重复的节目。但在某些时候,它们必须(可能)重新生成。
【讨论】: