Sql 当父项具有临时键时,如何管理对子记录的更改?
我有一张这样的桌子:Sql 当父项具有临时键时,如何管理对子记录的更改?,sql,orm,temporal,Sql,Orm,Temporal,我有一张这样的桌子: CREATE TABLE accounts ( id INT, start DATETIME, end DATETIME, addy TEXT, PRIMARY KEY (id, start, end) ); CREATE TABLE invoices ( id INT, start DATETIME, end DATETIME, amt DECIMAL(6,2) ) 这与用于存储临时更新的ORM模型相关联,因此您
CREATE TABLE accounts (
id INT,
start DATETIME,
end DATETIME,
addy TEXT,
PRIMARY KEY (id, start, end)
);
CREATE TABLE invoices (
id INT,
start DATETIME,
end DATETIME,
amt DECIMAL(6,2)
)
这与用于存储临时更新的ORM模型相关联,因此您不必使用UPDATE
ing,而是使用相同的id
和新的start
/end
日期创建新记录
好的,现在如果我有一个帐户的(临时)子记录,如下所示:
CREATE TABLE accounts (
id INT,
start DATETIME,
end DATETIME,
addy TEXT,
PRIMARY KEY (id, start, end)
);
CREATE TABLE invoices (
id INT,
start DATETIME,
end DATETIME,
amt DECIMAL(6,2)
)
我如何区分应反映母公司账户变更的发票和未反映母公司账户变更的发票
例如:
Accounts
id start end addy
1 d0 null 123 Main St
Invoices
id act start end amt
1 1 d0 null 100
发票显然与主街123号的账目记录有关
Accounts
id start end addy
1 d0 d1 123 Main St
1 d1 null 234 First St
Invoices
id act start end amt
1 1 d0 null 100
现在,Invoice.Account.addy的值是多少?123还是234
我是否需要其他字段来帮助确定哪个字段?如果是,这些列将是什么样子
谢谢 时态记录通常有两部分唯一键:通常认为是键的部分和时间戳。在这种情况下,“id”+“start”。我不清楚这里需要什么。有很多问题:为什么账户会被“更新”?“id”+“start”是否唯一?需要结束吗?PeopleSoft使用有效日期记录。也许这会给你一些关于如何继续的提示。当有人得到关于一个账户的更好的信息时,账户会被更新IRL,通常是电话号码,但有时是地址。复合id+开始+结束将是唯一的,并且是pkey。这是因为发票分配给一个帐户,但该帐户在某个时间存在。