[英]Database representation of a timeline
假设我有一个显示2种事件的时间轴:
因此,我在这里有一些基本表格: patients
, clinics
, photos
。
我还有一些时间表表: timeline_visit
, timeline_photo
。
问题是我是否被迫针对每种时间轴事件类型使用单独的表,然后使用UNION
构建完整的时间轴,或者我不知道其他一些技术(将所有可能的事件存储在一个表中)?
如您所见, timeline_visit
和timeline_photo
表具有相同且不同的字段和键。
我将创建一个名为events
的表,其中包含四列:
事件
patient_id int
id int
event_date timestamp
event_type int
每个条目将在一个时间点代表一个患者事件。 可能是去诊所或上传照片。 将有两个表格供参观和拍照:
访问
id int
event_id int
doctor_id int
decimal (10, 2) cost
double length_of_visit
上传
id int
event_id int
image_id int
image_content blob
现在,当您想要生成事件的时间轴时,可以通过查询单个表来完成它:
SELECT *
FROM events
WHERE event_date BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL 3 HOUR)
上面的查询将为您提供最近3个小时的时间表。 如果要查询中有关每个事件的详细信息,则可能必须执行一个巧妙的UNION
查询,因为每个事件的列将不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.