Задать вопрос
@magary4

Можно ли заменить связующую таблицу mysql на поле со значением в виде json массива?

есть таблицы users, organizations
чтоб их связать много-ко-многим нужна таблица user2org

а что если сделать в users столбец org и записывать туда массив ["123","129"] ?
  • Вопрос задан
  • 199 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
valerium
@valerium
Изобретая велосипед
Вы потеряете самое интересное — возможность пользоваться вторичными ключами, то есть делать быстрые и удобные выборки.

Точнее, всегда можно воспользоваться встроенными функциями MySQL, извлечь из JSONа индексы и сделать ещё один запрос, но Вы представьте, сколько это лишней работы как для программиста, так и для сервера.

Другое дело, если Вам для каких-то целей список этих индексов регулярно нужен в виде JSONа. Тогда можно либо триггером регулярно перезаписывать это значение (но хранить его как дополнение к таблице user2org, а не вместо неё), либо написать хитрый SQL запрос, который будет этот самый JSON на лету формировать.
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Главное правило: денормализацию данных необходимо делать очень четко понимая что Вы делаете и зачем.
В общем случае хранить так связи - не правильно.
Ответ написан
Комментировать
интересно как вы при этом будете вторичные ключи вешать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы