相关疑难解决方法(0)

日历重复/重复事件 - 最佳存储方法

我正在构建一个自定义事件系统,如果你有一个如下所示的重复事件:

活动A从2011年3月3日起每4天重复一次

要么

活动B于2011年3月1日星期二每2周重复一次

如何以一种易于查找的方式将其存储在数据库中.如果有大量事件,我不希望出现性能问题,在渲染日历时我必须经历每一个事件.

database-design calendar

291
推荐指数
9
解决办法
13万
查看次数

重复日历事件和一些最终的数学

我想尝试使用PHP/MySQL在日历上臭名昭着的重复事件.我终于找到了似乎有用的东西.我在这里找到了答案但是我有点难以完成它.

我的第一张桌子'事件'.

ID    NAME
1     Sample Event
2     Another Event
Run Code Online (Sandbox Code Playgroud)

我的第二个表'events_meta存储重复数据.

ID    event_id      meta_key           meta_value
1     1             repeat_start       1336312800 /* May 7th 2012 */
2     1             repeat_interval_1  432000 /* 5 days */
Run Code Online (Sandbox Code Playgroud)

假设repeat_start是没有时间作为unix时间戳的日期,repeat_interval是间隔之间的秒数(432000是5天).

然后我有以下MySQL,我从上面的链接稍微修改了一下.下面使用的时间戳(1299132000,即2012年5月12日)是当前没有时间的日期.

SELECT EV.*
FROM `events` EV
RIGHT JOIN `events_meta` EM1 ON EM1.`event_id` = EV.`id`
RIGHT JOIN `events_meta` EM2 ON EM2.`meta_key` = CONCAT( 'repeat_interval_', EM1.`id` )
WHERE EM1.meta_key = 'repeat_start'
    AND (
        ( CASE ( 1336744800 - EM1.`meta_value` )
            WHEN 0
              THEN 1
            ELSE …
Run Code Online (Sandbox Code Playgroud)

mysql

13
推荐指数
1
解决办法
9706
查看次数

查找给定范围内的所有插槽

如何查找范围内的所有日期位置..

从日期 01- Jan -2014 00:00:00 A.M

至今 15-Oct-2014 00:00:00 P.M

事件开始日期03-Jan-2014 10:00 A.M每3天发生一次,分别为03,06,09等

我需要使用c#计算如下所示

03-JAN-2014

06-JAN-2014

09-JAN-2014

12-JAN-2014

等等,等等

如何在c#中完成这些计算?尝试在DB中失败,请选中显示下一个事件日期

c# sql sql-server datetime

1
推荐指数
1
解决办法
523
查看次数

标签 统计

c# ×1

calendar ×1

database-design ×1

datetime ×1

mysql ×1

sql ×1

sql-server ×1