在我的计划中,我必须管理一些假期。每个假期可以是确切的日期,也可以是重复的日期。
例如:
-6th January of each years
-first day of each month of each year
您如何在db上保存此信息?
我无法使用Datetime
,因为在日期时间我无法代表上述示例中的特定情况。
有什么建议吗?
如果可能有问题,我正在使用 TSQL
抱歉我的英语很差。
答案 0 :(得分:2)
简单的方法,在不了解您对这些数据的使用情况的情况下,将有三个数字字段first
,<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self},
Path=Content.Text}" Value="first">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
,day
并以这种方式解释它们:如果全部三个被填满,这正是那一天,没有其他日子。如果年份没有填写,那就是日期和月份,每年重复一次。如果只填写了一天,那就是每一天重复一天。
如果你有更复杂的重复方案,你需要一个重复规则的属性,比如“每三个月一次”。
当然,每个查询都需要包含一些逻辑来解释这个方案,但这是不可避免的,除非你决定列出所有假期,比如说未来50年。
答案 1 :(得分:0)
我建议使用3列设计来存储这些条件
列以指定这是Day
还是WeekDay
指定Day/WeekDay Number
的栏目(即每天1至30/31,周日1至7)
指定Monthly/Yearly
出现的列。(表示每月/每年)
例如: - 每个月的第一天,这样的事情:DAY,1,MONTHLY
每个月的第二个星期六:WEEKDAY,14*,MONTHLY
(*我的周开始是星期日)
这不是一个完美的解决方案,您可能需要添加更多列才能完全满足您的业务逻辑。