我大量使用引用在SQL佈局,並想知道,如果這是一個壞習慣。正如我在varchar(20)
中聲明的一個參考文獻,PostgreSQL會使存儲使用率翻倍,或者只是使用隱藏的ID來鏈接這些值?PostgreSQL的存儲需要引用
一個例子:
create table if not exists distros(
name varchar(20),
primary key(name)
);
create table if not exists releases(
distro varchar(20) references distros(name),
name varchar(20),
primary key(distro, name)
);
create table if not exists targets(
distro varchar(20) references distros(name),
release varchar(20) references releases(name),
name varchar(20),
primary key (distro, release, name)
);
是一次或三次存儲distro
價值?
謝謝
您的'目標'表應該有一個外鍵放入由'*目標'中的'distro'和'release'列組成的'releases'。 –