Бэкенд или фронтенд должен объединять таблицы по FK?

В бэкенде сервиса есть две таблицы БД связанные отношением один ко многим.

table1
- PK: int
- name: string

table2
- PK: int
- name: string
- FK: table1

В сервисе есть API позволяющие получить данные этих таблиц на фронтенд.

Если требуется вывести на фронтенде данные обеих таблиц в объединенном виде по FK, то какие могут быть причине не делать новый API который даст эти данные в нужном виде:

t1.name, t2.name

Т.е. какие могут быть причины, чтобы фронтенд получал данные таблиц из существующих API и сам делал объединение таблиц?


Ответы (2 шт):

Автор решения: rotabor

Нет никаких причин для того, чтобы нагружать фронтэнд знанием о структуре БД. БЭ должен по простому запросу от ФЭ предоставлять нужные данные, при этом ФЭ всё равно, как и откуда они взялись.

→ Ссылка
Автор решения: Faraday

Сервер занимается обработкой данных, запросами к базе данных и подготовкой данных для отправки клиенту. Клиент же занимает обработкой данных, для наилучшего представления их конечному пользователю.

Как ответ на ваш вопрос, сервер должен делать запросы к БД, объединять таблицы и группировать данных и передавать их в минимально-полном виде клиенту для отображения

→ Ссылка