我有两个表:
时间表:
- id INT
- daily_schedule_id INT
- 开始 TIMESTAMP
- 完成 TIMESTAMP
每日时间表:
- id INT
- 日期日期
我想向schedules.start
和schedules.finish
添加约束,以检查daily_schedules.date
的值。有一个简单的方法可以做到这一点吗?
遵循以下原则:
ALTER TABLE schedules
ADD CONSTRAINT schedules_date_range_check CHECK (start = daily_schedules.date AND finish = daily_schedules.date)
答案 0 :(得分:1)
虽然从技术上讲有多种方法可以实现,但不支持它,这是一个坏主意,因为它可能导致无法恢复转储。
避免数据库中的冗余始终是一个好主意,因此我建议将start
和finish
存储在schedules
中,其数据类型为time
,即相对于相关date
的{{1}}的理解。
只需添加daily_schedules
和time
,瞧,您得到了date
。