SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Избыточная ссылочность
Избыточная ссылочность [сообщение #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);
https://i.imgur.com/ZUcVZIf.png


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/
 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: create user using plugin Srp;
Следующая тема: Проектирование БД: таблица прайсов
Переход к форуму:
  


Текущее время: Fri Nov 15 05:37:01 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00789 секунд