我想知道在數據庫中的子表中有重複的ID有什麼優點和缺點。在兒童表中重複的ID
例如,考慮表parent
:
create table parent (
id int,
a text,
b text
)
這parent
有child1
表引用它:
create table child1 (
id int,
parent_id int not null references parent(id),
c text,
d text
)
所有優秀和良好,並沒有什麼不尋常的。這個問題是在你不停下鑽:
create table child2 (
id int,
child1_id int not null references child1(id),
e text,
f text
)
create table child3 (
id int,
child2_id int not null references child2(id),
g text,
h text
)
我有是問題,進一步的你下來,越繁瑣就變成向上加入你的方式。一個解決方案,我認爲是重複parent
ID中的所有兒童表:
create table child2 (
id int,
parent_id int not null references parent(id),
child1_id int not null references child1(id),
e text,
f text
)
create table child3 (
id int,
parent_id int not null references parent(id),
child2_id int not null references child2(id),
g text,
h text
)
這有助於減少連接的數量,但它也影響數據庫的完整性。如果切換child1
的父項,則需要始終記住更新所有parent_id
列。我的問題是:是否有其他方法來處理這種情況?如果沒有,是否有任何方法可以在保留數據完整性的情況下在兒童表中重複一個ID?