我有一个表training_schedule,其中包含数据start_date,end_date,year,course,title等。
我目前的设计是
现在我的应用程序,我需要从年份或月份获取计划基础。 (我添加了年份表,因为它用于不同的部分,比如我们在特定年份制作广告系列时。)
我认为这个设计并不好,因为我只是忽略了start_date和end_date的年份。我正在考虑这些选择:
a)删除年份并将年份基于start_date
b)创建额外的列start_month,start_day,end_day,end_month,year
或
有人可以提出更好的设计吗?创建年份和月份表也很好吗?使用join语句获取月份名称?
提前致谢
答案 0 :(得分:0)
将日期拆分成组件通常是一条不好的路线。只要您想要进行日期范围查询,就需要将它们重新组合回日期。
如果您担心重复,可以将year
列设为计算列(或数据库系统中的道德等效术语),该列自动从start_date
列中提取 - 这样你知道它总是正确的。
所以我会用(a)计算列。