所以我认为我只能通过使用 VisitId 记录每次访问来做到这一点。
每次访问都需要一行。每行都需要一个键。密钥不需要是单个 ID 号。我认为您每次访问至少需要记录的是
create table visits (
patient_id integer not null, -- references patients (patient_id), not shown
doctor_id integer not null, -- references doctors (doctor_id), not shown
office_visit_start timestamp not null default current_timestamp,
primary key (patient_id, office_visit_start)
);
insert into visits values (1, 1, '2012-02-01 08:00');
insert into visits values (1, 1, '2012-02-01 15:00');
insert into visits values (1, 1, '2012-03-01 09:33');
insert into visits values (2, 1, '2012-02-01 09:00');
(具体语法因您的 dbms 平台而异。)您可以通过相当简单的查询找到上一次和下一次就诊——“office_visit_start”将为您提供患者就诊的顺序。
示例查询。. .
-- Previous visit for patient # 1 (before 2012-02-01 15:00)
select patient_id, max(office_visit_start)
from visits
where patient_id = 1
and office_visit_start < '2012-02-01 15:00'
group by patient_id
-- Next visit for patient # 1 (after 2012-02-01 15:00)
select patient_id, min(office_visit_start)
from visits
where patient_id = 1
and office_visit_start > '2012-02-01 15:00'
group by patient_id