проетируем БД, для описание объектов недвижимости придется заводить таблицу которая будет содержать около 200 полей, со времен число полей может увеличиться, каждая запись в таблице может использовать 1-40% всех полей, имеет ли смысл выносить свойства объектов недвижимости в отдельный справочник и потом объединять их с объектами через третью таблицу, или это лишние танцы с бубном и мало повлияют на производительность? вариант хранить все свойства в json не рассматриваем. На первых парах в базе будет храниться примерно 10к объектов недвижимости
Имеет. Притом дажэ не на производительность (производительность от введения avpair скорее пострадает) -- а на управляемость системы. И да, это важнее на самом деле. Плохую производительность можно залить жэлезом или нанять одного инжэнера на оптимизацыю critical path -- а плохая управляемость проекта чаще всего не лечится до его смерти. И да, есть определённый смысл самые часто требуемые атрибуты таки не выносить в avpair.
> имеет ли смысл выносить свойства объектов недвижимости в отдельный справочник и потом объединять их с объектами через третью таблицу А как конкретно выглядит это решение (непонятно, в чём альтернатива)? И да, почему Вас вообще волнует производительность, с учётом: > в базе будет храниться примерно 10к объектов недвижимости Даже если потом будет больше — насколько и какие (примерно) ожидаются запросы?
Может вынести не используемые в логике поля в JSONB ?
Если у тебя в таблице 200 полей — уже однозначно ты делаешь что-то не так...
имеет ли смысл выносить свойства объектов недвижимости в отдельный справочник и потом объединять их с объектами через третью таблицу, Имеет. То, что ты описываешь, называется "нормализация". Её НЕОБХОДИМО делать. вариант хранить все свойства в json не рассматриваем. И не надо... Не место JSON-у в РСУБД На первых парах в базе будет храниться примерно 10к объектов недвижимости Это мало.
Уже много лет не так. Если эти свойства в логике не участвуют, по ним выборки не делается то смысл их хранит каждое в своём поле? Что бы что? Что бы показать структуру этих данных или что?
Согласен, но если свойства в логике не участвуют, по ним выборки не делаются — нафига их вообще хранить в БД?
Нигде , например... Давай не будем спорить в пустую — пусть автор вопроса про это думает...
Обсуждают сегодня