powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оформление "денормализации" триггерами
4 сообщений из 4, страница 1 из 1
Оформление "денормализации" триггерами
    #40037418
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день Товарищи!

У меня такой вопрос. Если например есть у меня таблица в которой хранятся данные по всем используемым в приложении изображениям (загружаемым пользователями):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
TABLE images ( /* Данные по всем картинкам в приложении */
       id    SERIAL PK,
 fileHash CHAR(32) UNIQUE,
 fileSize INT UNSIGNED NOT NULL, 
     imgX SMALLINT UNSIGNED,
 .....
 .....
)


Т.е. каждай картинка при загрузке в систему - сперва оформляется в эту таблицу (единым классом на уровне приложения), а уже затем в БД может быть использована для связи с другими сущностями по imgID .

И эти картинки могут быть привязаны к разным сущностям в БД. Это могут быть логотипы юзеров, картинки в галлереях и т.п. Так вот связи сущностей с картинками хранятся в нормальных таблицах вида (рассматриваем только вариант один к одному):
Код: sql
1.
2.
3.
4.
TABLE EntityImage (
    EntityID BIGINT UNSIGNED NOT NULL UNIQUE,
     ImageID BIGINT UNSIGNED NOT NULL,
)



Собственно вопрос вот в чём, вы быть может спросите - а почему просто у таблицы с Сущностью не добавить поле ImageID и в него пихать связь с картинкой. Но именно это и составляет мой вопрос.

1. Если делать связь один-к-одному прямо полем у Сущности, то для получения данных Сущности, и вместе с этим получение данных о Картинке - это JOIN с таблицей images.
2. А я хочу спросить про адекватность такой схемы: Реализация привязки один-к-одному через доп.таблицу (EntityImage) на которую навешаны триггеры, обновляющие условное JSON поле у таблицы Сущности Image_J, в которое записывается просто JSON сборка данных о картинке.

И тогда можно получая данные о Сущности сразу иметь актуальную информацию о связанной картинке без доп. JOIN'ов.
...
Рейтинг: 0 / 0
Оформление "денормализации" триггерами
    #40037482
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot
2. А я хочу спросить про адекватность такой схемы

Она нулевая, как и у любой другой преждевременной оптимизации.
...
Рейтинг: 0 / 0
Оформление "денормализации" триггерами
    #40037545
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot
2. А я хочу спросить про адекватность такой схемы
Даже по описанию - схема маловменяемая. Как и само описание. А уж догадаться, нахрена этот огород городится, так и вовсе не получается... в смысле, профиту не видать - в отличие от потенциальных проблем, которые очень даже неиллюзорны.
...
Рейтинг: 0 / 0
Оформление "денормализации" триггерами
    #40037559
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kormot
почему просто у таблицы с Сущностью не добавить поле ImageID и в него пихать связь с картинкой. Но именно это и составляет мой вопрос.
Допустим, потому что к каким-то сущностям (возможно в данный момент неизвестным) может быть привязано несколько изображений, а не одно.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оформление "денормализации" триггерами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]