Count в значение таблицы mysql

199
22 февраля 2017, 21:15

Интересует вопрос можно ли то таблицу в которой одно из полей будет содержать в себе количество записей из другой таблицы? В access вроде так делал уже. Если нельзя то какие есть альтернативы? Варианты с select отпадают нужно именно в базе хранить количество для последующей сортировки с помощью выборок

Answer 1

Вариантов несколько.

  1. Создать для таблицы table1 представление table1_view, в котором брать все поля table1 + вычислить поле "количество чего-то там" через select COUNT() from table2 ... можно подзапросом, а можно с помощью соединения таблиц и GROUP BY. В дальнейшем запросы из программы строить не к таблице а к view, можно будет сортировать по количеству и пр.
  2. Создать триггеры на добавление и удаление (а возможно и обновление, зависит от логики) в table2, которые будут обновлять вычислимые поля в table1, если уж так необходимо его именно хранить.

Кстати, зачем его вам именно хранить совершенно непонятно, это к тому же нарушает 3-ю нормальный форму. Но если уж действительно нужно (много чего бывает странного нужно) - вкусите триггеры. Рекомендуется, разумеется, первый вариант.

READ ALSO
Mysql сортировка по кастомному полю

Mysql сортировка по кастомному полю

ЗдравствуйтеЕсть характеристики которые берутся из 3 (трех) таблиц

199
sql сравнение чисел как LIKE строк

sql сравнение чисел как LIKE строк

Имеется таблица вида {id, name}, в которой id может принимать большие значения, например, 17200, 17201, 17202, 17203 и тд

323
Пустой ответ на mysql-запрос через php

Пустой ответ на mysql-запрос через php

Добрый день! Подсобите победить неведомую и кажется простяцкую фигню)

319
Концепция взаимодействия методов в JavaFX (MVC)

Концепция взаимодействия методов в JavaFX (MVC)

Пишу (учусь писать) программу на JavaFX, используя паттерн Model-View-Controller, причем, в добавок, клиент-серверное приложениеНа сервере хранятся классы...

378