gpt4 book ai didi

mysql - 时间线的数据库表示

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:30 25 4
gpt4 key购买 nike

假设我有一个显示两种事件的时间轴:

  1. 一位患者去过一家诊所。此类事件涉及患者和诊所。
  2. 一位患者上传了一张照片。此类事件涉及患者和照片。

所以我这里有一些基础表:patientsclinicsphotos
我还有一些时间表:timeline_visittimeline_photo

问题是我是否被迫为每个时间线事件类型使用单独的表,然后使用 UNION 构建完整的时间线,或者还有一些我不知道的其他技术(存储所有可能的事件都在一个表中)?
如您所见,timeline_visittimeline_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 查询,因为每个事件的列都不会相同。

关于mysql - 时间线的数据库表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com