我有一张这样的桌子:
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
之外),但我认为查询的难度更大。