我知道「一個真正的查找表」的概念是一種反模式,通常不應該使用(參考網上許多許多文章)。但是,我想知道在Postgres中使用表繼承的情況是否仍然如此?在Postgres中使用繼承反對反模式(OTLT)
您永遠不會讀取或插入主查找表 - 它更多地作爲您的其他查找表的模板,您不會失去任何引用完整性(可能會獲得空間,否則會浪費在緩存塊中由於表中的數據量較大),並且在通過子表插入時,甚至不需要類型。
我OTLT會對所需要的所有查詢表中的列如下:
CREATE TABLE sl_lookupmaster
(
lookupid bigserial NOT NULL,
parent bigint,
tstamptdt timestamp without time zone NOT NULL DEFAULT localtimestamp,
description character varying(500) NOT NULL,
entityref bigint NOT NULL,
deleted boolean NOT NULL DEFAULT false,
CONSTRAINT sl_lookupmaster_pkey PRIMARY KEY (lookupid)
)
然後你繼承掉的那個。
人們認爲什麼,這仍然是一個設計錯誤,這仍然是OTLT?
我不確定我瞭解「父」,「實體參考」和「tstampdt」的用途。你可以編輯你的問題,並提供一些樣本數據,比如USPS縮寫的「查找表」中的狀態? –
它們無關緊要。只是在我們的應用程序中的所有查找都有它們 –