每周/每两周一次的时间过滤数据结构

时间:2014-04-14 02:22:37

标签: c# sql

我想设置每周/每两周一次的过滤器这样事情只能在特定日期的某些时间内发生。我想知道是否有类似这样的数据约定。目前我能想到的最好的东西是代表两周内每14天的开始和结束时间,但是当一天有多次例如星期一0900-1200和星期一1300-1500时,这种情况无法处理。我每天限制一次。

到目前为止我想出的例子

class schedule{
    MondayWeekOneStartTime;
    MondayWeekOneEndTime;
    TuesdayWeekOneStartTime;
    TuesdayWeekOneEndTime;
    ...
}

此数据结构将作为表存储在sql数据库中,因此我希望将列数保持最小。有没有更好的方式来表示这种类型的时间表,还是我坚持这种方式?

1 个答案:

答案 0 :(得分:2)

这个怎么样?

class ScheduleDay
{

    DayOfWeek Day;
    Timespan[] Times   

}

class Schedule
{

    ScheduleDay[] Days;

}

在您的数据库中,您创建了两个表,一个用于带有id和(每个示例)名称的Schedule,另一个用于带有id,scheduleid,day,start,end的ScheduleDay。

通过这种方式,您可以根据需要处理多个时间跨度。