@Anton17892

Дизайн БД. Один ко многим MYSQL или Postgresql JSONB?

Здравствуйте.
Стоит задача составления самой оптимальной структуры бд для проекта. Суть в том что имеются разные виды записей с почти схожей структурой (70%), имеющие порой родительские отношения между собой (пока макс. 3 уровня вложения), а также отношения с другими таблицами. Разнести по разным таблицам не вариант, за основу идет выборка всех записей с возможностью фильтрации по типам. Поставить все в одну таблицу, не хотелось бы, поскольку будут оставаться пустые столбцы (есть случаи наследования, когда нужная информация берется из родителя, и все поля остаются пустыми кроме нужных дочернему).

Исходя из всего этого есть 2 варианта пока:
Вариант 1
1) Сделать таблицу с записями:
- ИД
- ИД пользователя
2) Сделать таблицу с варчар полями записи
- Ид
-Ключ
-Значение
-Ид записи
3) Сделать таблицу с полями текстового типа (для текста, Json)
- Ид
-Ключ
-Значение
-Ид записи
4) Сделать таблицу с датами записи (или хранить даты в юниксе в таблице варчар (пт. 2), во избежание лишнего запроса и этой таблицы - здесь нужен совет)
-Ид
-Ключ
-Значение
-Ид записи

Вариант 2
Перейти на postgresql и использовать jsonb в примерном формате:
-Ид
-Данные (json)
-Ид пользователя


Важна гибкость в запросах, т.к. очень много критериев фильтрации, отношений с другими таблицами, еще и поиск нужен. А также важна скорость и потребление ресурсов, и еще перспектива оптимального расширения.
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ответы на вопрос 1
akzhan
@akzhan
Все-таки выясните, что именно вам важнее, производительность, дедубликация или удобство расширения.

Вариант с JSONB удобен, но он не документирует структуру, что очень важно.

Посмотрите в сторону наследования таблиц, например.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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