У меня есть такая таблица:
CREATE TABLE things
(id INTEGER PRIMARY KEY,
name TEXT,
status INTEGER);
Есть такие «вещи», которые имеют статус, который может быть 1 или 0, этот статус автоматически изменяется другой частью моей программы.Я хотел бы хранить информацию о временных интервалах, когда статус этих вещей равен 0 или 1, что я могу сделать?Я думал создать две таблицы:
CREATE TABLE status_from_0_to_1
(id INTEGER PRIMARY KEY,
datetime DATE,
things_id INTEGER,
FOREIGN KEY (id) REFERENCES things (id));
CREATE TABLE status_from_1_to_0
(id INTEGER PRIMARY KEY,
datetime DATE,
things_id INTEGER,
FOREIGN KEY (id) REFERENCES things (id));
Но сейчас я не знаю, как написать запрос, который проверяет, отличается ли новый статус от статуса в таблице things
и только в этом случаедобавить строку в одну из двух таблиц.Я не знаю, является ли это лучшим подходом, я также подумал о создании одной таблицы (помимо things
) с двумя полями DATE
, но я думаю, что запрос будет еще более сложным.