Gabinet dentystyczny - usuwanie pacjentów i wizyt
Nadszedł czas na implementację usuwania pacjentów oraz wizyt.
Usuwanie nie będzie tak naprawdę usuwaniem, lecz ukrywaniem - dodatkowa, boolowska kolumna deleted w tabelach patient oraz visit będzie flagą oznaczającą “usunięty” rekord w bazie. Dzięki temu omyłkowe usunięcie będzie “odwracalne”.
Zmiany w SQL
Zmiana schematu bazy
Konieczna będzie mała zmiana schematu: każdaą encję poszerzam o pole deleted:
create table if not exists patient (
id integer primary key,
name string not null,
surname string not null,
birthdate date not null,
note_id integer,
deleted boolean default false,
foreign key(note_id) references note(id)
);
create table if not exists note (
id integer primary key,
deleted boolean default false,
text string not null
);
create table if not exists visit (
id integer primary key,
vdatetime datetime not null default CURRENT_TIMESTAMP,
patient_id integer not null,
note_id integer,
deleted boolean default false,
foreign key(patient_id) references patient(id),
foreign key(note_id) references note(id)
);Zmiana zapytań pobierających pacjentów
Zapytanie o listę pacjentów uwzględnia tylko te wiersze, dla których deleted=false:





