@Mr_Epic
Web программист

Правильно ли хранить данные JSON в MySql, в место создания кучи таблиц?

Есть пользователи (около 200), и страница Портфолио, на которой отображается 10 таблиц, у всех таблиц разное количество столбцов, строки могут изменять(добавлять/удалять) сами пользователи.
То есть, у каждого пользователя своё портфолио и соответственно свои данные в таблице.
Есть 3 варианта хранения информации:
  1. Создать общую таблицу в MySql, которая бы хранила 1 строку с любой таблицы в json формате.
  2. Создавать под каждую таблицу страницы, таблицу(10шт) в БД MySql, с нужным количеством столбцов
  3. Создать общую таблицу с максимальным количеством столбцов и где столбцов меньше, оставлять поля пустыми

Поиск и сортировка по данным таблиц не нужна, в каком виде правильнее хранить информацию и почему?
  • Вопрос задан
  • 728 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Barmunk
Это классическая реляционная структура. Почему это все надо хранить в json?

59f34157583d7365107160.jpeg
Ответ написан
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Читать нормальные формы для РБД. Связи. Коротко - таблицы должно содержать отдельные значимые единицы информации в отдельных полях, если эти информационные блоки относятся к разным сущностям - это должны быть разные таблицы. Связи между сущностями соотносятся через ключи-идентификаторы. Дублирование информации в таблицах в идеале отсутствует, то есть если в таблице А есть значение а, которое может быть связано с таблицей Б, в Б это значение не записывается, а создается связь через ключ с таблицей А, или, если таких связей может быть много - создается отдельная таблица связей(один ко многим или многие ко многим).
Ответ написан
Комментировать
AlexXYZ
@AlexXYZ
O Keep Clear O
Можно, конечно, только тут есть одна проблема - проверка валидности данных перед записью в MySQL. Из коробки в MySQL нет встроенных средств проверки схемы. Я такую проверку писал на Java/JavaScript/Nashorn (чтобы одна и та же функция валидировала JSON на выходе со страницы и на входе в сервлет) перед сохранением.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы