Избыточная ссылочность [сообщение #1082] |
Mon, 05 December 2022 14:48 |
|
Док
Сообщений: 101 Зарегистрирован: June 2022
|
Senior Member |
|
|
Комрады, есть мысль сделать в табле дополнительные внешние ключи, чтобы не добывать нужные сведения лишними джойнами из подчиненых таблиц. Насколько это целесообразно? И чем может грозить?
CREATE TABLE TBL_CHILD_1 (
ID INTEGER NOT NULL,
FK_SUBCHILD INTEGER,
NAME INTEGER
);
CREATE TABLE TBL_CHILD_2 (
ID INTEGER NOT NULL,
NAME VARCHAR(10)
);
CREATE TABLE TBL_MAIN (
ID INTEGER NOT NULL,
FK_CHILD_1 INTEGER,
FK_CHILD_2 INTEGER,
FK_SUBCHILD INTEGER,
NAME VARCHAR(10)
);
CREATE TABLE TBL_SUB_CHILD (
ID INTEGER NOT NULL,
NAME VARCHAR(10)
);
/******************************************************************************/
/*** Primary keys ***/
/******************************************************************************/
ALTER TABLE TBL_CHILD_1 ADD CONSTRAINT PK_TBL_CHILD_1 PRIMARY KEY (ID);
ALTER TABLE TBL_CHILD_2 ADD CONSTRAINT PK_TBL_CHILD_2 PRIMARY KEY (ID);
ALTER TABLE TBL_MAIN ADD CONSTRAINT PK_TBL_MAIN PRIMARY KEY (ID);
ALTER TABLE TBL_SUB_CHILD ADD CONSTRAINT PK_TBL_SUB_CHILD PRIMARY KEY (ID);
/******************************************************************************/
/*** Foreign keys ***/
/******************************************************************************/
ALTER TABLE TBL_CHILD_1 ADD CONSTRAINT FK_TBL_CHILD_1_1 FOREIGN KEY (FK_SUBCHILD) REFERENCES TBL_SUB_CHILD (ID);
ALTER TABLE TBL_MAIN ADD CONSTRAINT FK_TBL_MAIN_1 FOREIGN KEY (FK_CHILD_1) REFERENCES TBL_CHILD_1 (ID);
ALTER TABLE TBL_MAIN ADD CONSTRAINT FK_TBL_MAIN_2 FOREIGN KEY (FK_CHILD_2) REFERENCES TBL_CHILD_2 (ID);
ALTER TABLE TBL_MAIN ADD CONSTRAINT FK_TBL_MAIN_3 FOREIGN KEY (FK_SUBCHILD) REFERENCES TBL_SUB_CHILD (ID);
FPC/Lazarus (trunk) | Win10 x64 Ultim/Debian 11 amd64/Darwin x86_64 Monterey | Firebird 3.0.10 x64 | IBX by TonyWhyman
https://zoltanleo.blogspot.com/
|
|
|
|
|
|
|
Re: Избыточная ссылочность [сообщение #1089 является ответом на сообщение #1085] |
Mon, 05 December 2022 16:41 |
pastor
Сообщений: 81 Зарегистрирован: June 2022 Географическое положение: Калуга
|
Member |
|
|
цена вопроса.
если экономить на join - то проще сразу подтянуть данные
если этих join меньше десяти - то проще сгородить select
в общем и целом, простая ссылка на справочник ничего не упрощает, а промежуточный справочник тащить так и так.
[Обновления: Mon, 05 December 2022 16:42] Известить модератора
|
|
|
|
|
|
Re: Избыточная ссылочность [сообщение #1097 является ответом на сообщение #1086] |
Wed, 07 December 2022 01:09 |
|
Док
Сообщений: 101 Зарегистрирован: June 2022
|
Senior Member |
|
|
МП писал(а) Mon, 05 December 2022 16:08ты опять начинаешь лечить до получения анамнеза.
да, как бэ, есть у меня в старом проекте многоэтажный запрос с лефт джоном и группировкой - тормозит уже на 30 тыс записях. А я тут пока на этапе проектирования пытаюсь избежать потенциальных граблей
FPC/Lazarus (trunk) | Win10 x64 Ultim/Debian 11 amd64/Darwin x86_64 Monterey | Firebird 3.0.10 x64 | IBX by TonyWhyman
https://zoltanleo.blogspot.com/
[Обновления: Wed, 07 December 2022 01:11] Известить модератора
|
|
|
|
|
|
|