文件名称:time_for_keys:Postgres的临时外键
文件大小:24KB
文件格式:ZIP
更新时间:2024-05-22 09:27:49
PLpgSQL
time_for_keys 此扩展使您可以定义时态表之间的参照完整性约束(外键),如。 我们专注于有效时间(即状态时间)表,而不是事务处理时间(即系统时间)表,尽管这些键在两种情况下均应起作用。 换句话说,我们的钥匙适用于您想要某些事物的历史记录的情况。 如果您想要数据库的历史记录(例如,用于审核),Vlad Arkhipov的时名将自动保留该历史记录。 由于它是自动生成的,因此不需要外键。 我还没有考虑过双时态表上的参照完整性,尽管如果您愿意的话,请告诉我。 :-) 关于时间表的棘手的事情是,只要行的时间段不重叠,事物的身份就可以存在于多行中。 您可以使用来创建“时间主键”,但是您仍然需要支持检查外键。 如果您有houses表和rooms表,则可能需要外键以确保每个房间的房子都在那里。 在临时表中,您要确保房子在房间引用它的任何时间点都存在。 例如,如果房子是2015年建造的,那么
【文件预览】:
time_for_keys-master
----.gitignore(100B)
----README.md(4KB)
----time_for_keys.c(785B)
----LICENSE(1KB)
----.gitattributes(53B)
----time_for_keys.control(136B)
----sql()
--------delete_pk_test.sql(3KB)
--------update_pk_test.sql(5KB)
--------insert_fk_test.sql(3KB)
--------init.sql(618B)
--------update_fk_test.sql(4KB)
--------create_temporal_foreign_key_test.sql(2KB)
--------with_exclusion_constraints.sql(8KB)
--------completely_covers_test.sql(5KB)
----completely_covers.c(6KB)
----time_for_keys--0.0.1.sql(19KB)
----completely_covers.h(0B)
----expected()
--------init.out(618B)
--------completely_covers_test.out(6KB)
--------update_fk_test.out(7KB)
--------update_pk_test.out(8KB)
--------with_exclusion_constraints.out(11KB)
--------delete_pk_test.out(4KB)
--------create_temporal_foreign_key_test.out(4KB)
--------insert_fk_test.out(5KB)
----Makefile(777B)