注意:这与关于在表本身中添加冗余信息的这个 SO 问题不同。
以下系列语句中的最后一条语句是否在索引/查询优化方面给我带来了任何好处,还是完全没有用并且是一种反模式?从参照完整性的角度来看,它是无用的,但在索引或查询处理速度方面是否有一些好处,例如,JOIN仅在“子”表和“祖父”表之间?
CREATE TABLE grandfather (i INTEGER);
ALTER TABLE grandfather ADD PRIMARY KEY (i);
CREATE TABLE father (i, j INTEGER);
ALTER TABLE father ADD PRIMARY KEY (i, j);
ALTER TABLE father ADD CONSTRAINT father_2_grandfather FOREIGN KEY (i) REFERENCES grandfather(i);
CREATE TABLE child (i, j, k INTEGER);
ALTER TABLE child ADD PRIMARY KEY (i, j, k);
ALTER TABLE child ADD CONSTRAINT child_2_father FOREIGN KEY (i, j) REFERENCES father(i, j);
-- is the below statement totally useless ?
ALTER TABLE child ADD CONSTRAINT child_2_grandfather FOREIGN KEY (i) REFERENCES grandfather(i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
541 次 |
| 最近记录: |