Как связать внешние поля модели, если данные находятся в разных базах?

Если сущности находятся в независимых БД, обычно сохраняют внешний идентификатор и разрешают связь на уровне сервиса. Обычный внешний ключ не обеспечивает целостность между такими базами.

Короткий ответ

Что ответить на собеседовании

Если сущности находятся в независимых БД, обычно сохраняют внешний идентификатор и разрешают связь на уровне сервиса. Обычный внешний ключ не обеспечивает целостность между такими базами.

Подробный разбор

Ответ с пояснениями

Если сущности находятся в независимых БД, обычно сохраняют внешний идентификатор и разрешают связь на уровне сервиса. Обычный внешний ключ не обеспечивает целостность между такими базами.

Владельцем сущности должен быть один сервис или источник данных. Другой хранит ID, обращается к API либо поддерживает локальную read-модель по событиям. Нужно определить поведение при удалении, недоступности и задержке обновления. Для отчётности данные можно объединять в отдельном хранилище или использовать поддерживаемую СУБД федерацию, но это отдельный механизм с ограничениями. ORM не превращает межбазовую связь в обычную транзакционную ForeignKey. Если нужна строгая атомарная целостность, стоит пересмотреть границу хранения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее