|
|
1
6
您可能应该尝试阅读有关“时态数据库”处理的信息。你可以看看的两本书是Darwen,Date和Lorentzos Temporal Data and the Relational Model “而且(在一个完全不同的极端)” Developing Time-Oriented Database Applications in SQL ”,Richard T.Snodgrass,Morgan Kaufmann出版社,股份有限公司,旧金山,1999年7月,504+xxiii页,ISBN 1-55860-436-7。这本书已经绝版,但可以在他的网站上以PDF格式获得,网址为 cs.arizona.edu 。您还可以查找“ Allen's Relations
我假设曾经是一个人。ID已建立,不会更改;名字也是如此。ID。这意味着在记录有效期间,它们仍然有效。 其中一个难点是建立正确的“开始时间”和“结束时间”值集,因为转换可能发生在任一表中(或两者都发生)。目前,我甚至不确定你是否拥有所需的所有数据。插入新记录时,您不会记录其生效的时间( 还有很多可以说的。不过,在进一步讨论之前,我宁愿对迄今为止提出的一些问题有一些反馈。 其他一些SO问题可能会有所帮助:
自从这个答案第一次被写出来以来,又出版了另一本书,介绍另一组名为“断言版本控制”的方法来处理时态数据。这本书是“ Managing Time in Relational Databases: How to Design, Update and Query Temporal Data 汤姆·约翰斯顿和兰德尔·韦斯。您可以在以下网址找到他们的公司 AssertedVersioning.com 此外,SQL 2011标准(ISO/IEC 9075:2011,分为多个部分)已经发布。它包括一些时间数据支持。您可以在以下网址了解更多关于时态数据的信息以及其他相关问题 TemporalData.com |
|
|
2
0
保持一个具有自动递增功能的单一更改表
始终将原始记录放在审核表中。
这样地: `Change` 1 2 3 4 5 6 `NameAudit` 1 - created as John Smith 5 - changed to James Smith `PersonAudit` 1 - created as born on `01.01.1980` in `Seattle, WA` 2 - changed DOB to '01.01.1980` 3 - changed DOB to '02.01.1980` 4 - changed DOB to '02.01.1980` 6 - changes POB to `Washington, DC`
|
|
|
developer · 带外键的SQL表设计 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 2 年前 |
|
|
robertspierre · 在多对多关系中自动删除未引用的行 2 年前 |
|
|
Michael Samuel · MYSQL在以下情况下自动创建索引 8 年前 |