如何设计开始日期和结束日期和年份的日程表

时间:2014-02-05 07:04:46

标签: database database-design data-structures

我有一个表training_schedule,其中包含数据start_date,end_date,year,course,title等。

我目前的设计是

  • 当然
  • 标题
  • start_date(日期)
  • end_date(日期)
  • year_id(fk)

现在我的应用程序,我需要从年份或月份获取计划基础。 (我添加了年份表,因为它用于不同的部分,比如我们在特定年份制作广告系列时。)

我认为这个设计并不好,因为我只是忽略了start_date和end_date的年份。我正在考虑这些选择:

a)删除年份并将年份基于start_date

b)创建额外的列start_month,start_day,end_day,end_month,year

有人可以提出更好的设计吗?创建年份和月份表也很好吗?使用join语句获取月份名称?

提前致谢

1 个答案:

答案 0 :(得分:0)

将日期拆分成组件通常是一条不好的路线。只要您想要进行日期范围查询,就需要将它们重新组合回日期。

如果您担心重复,可以将year列设为计算列(或数据库系统中的道德等效术语),该列自动从start_date列中提取 - 这样你知道它总是正确的。

所以我会用(a)计算列。