@wawa

Нужна ли здесь связь 1:1 вместо расширения таблицы?

Есть табличка user с вполне стандартными полями и полем updated_at (ну так надо).
Помимо этого я веду статистику для пользователей в таком виде, что ее можно просто добавить в таблицу user в новых полях или выделить в отдельную таблицу user_stats со связью 1:1 с user.
Во втором случае я выделяю отдельную сущность и могу например добавить в user_stats поле updated_at, явно указывая, что это время обновления именно статистики. Иначе (в случае одной таблицы user) мне пришлось бы уточнять имя этого поля как stats_updated_at, при этом не понятно за обновление каких полей отвечает этот stats_updated_at и просто updated_at.
В общем выделение отдельной таблицы user_stats видится более кошерным, но при этом придется мириться с джойном user+user_stats при запросах.
Как поступаете вы?

Update 1:
А можно как-то выкрутиться при помощи views/наследования/других фич postgres'а явно выделив две сущности, при этом избежав 1:1 и следовательно джойна?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Не стоит избегать джойна, ничего плохого от него не будет, делайте кошерно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester
http://iczin.su/hexagram_48
а в чем "кошерность"?

вроде как простота рулит и в производительности, и в поддержабельности, и в расширяемости.. но точно не усложнение на ровном месте

Update 1: view точно выглядит куда кошернее... во всех смыслах
Ответ написан
Ваш ответ на вопрос

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

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