> Какая связь между таблицами людей и адресов в базе данных (Go)
Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Wildberries
Стек: Go
> Пример ответа
Связь между таблицами людей и адресов в базе данных обычно реализуется как "один ко многим" (one-to-many). Это означает, что один человек может иметь несколько адресов (например, постоянный, временный, рабочий), но каждый адрес принадлежит только одному человеку.
В реляционной схеме это выглядит так:
- Таблица
peopleсодержит уникальный идентификатор (id). - Таблица
addressesсодержит внешний ключperson_id, ссылающийся наpeople.id.
Пример на Go с использованием SQL (например, PostgreSQL):
GOtype Person struct {ID int `db:"id"`Name string `db:"name"`}type Address struct {ID int `db:"id"`PersonID int `db:"person_id"`City string `db:"city"`Street string `db:"street"`}// SQL для создания таблиц// CREATE TABLE people (id SERIAL PRIMARY KEY, name TEXT);// CREATE TABLE addresses (id SERIAL PRIMARY KEY, person_id INT REFERENCES people(id), city TEXT, street TEXT);
Если же требуется, чтобы один адрес мог принадлежать нескольким людям (например, общежитие), то связь становится "многие ко многим" через промежуточную таблицу person_addresses.
> Похожие задачи по Go
Как масштабировать Kafka при высокой нагрузке
Кто пишет миграции в проекте
Какие требования по шифрованию данных существуют
Как подбирать тайм-ауты для backend взаимодействия, например HTTP запросов
> Похожие задачи по backend
Как масштабировать Kafka при высокой нагрузке
Кто пишет миграции в проекте
Какие требования по шифрованию данных существуют
Как подбирать тайм-ауты для backend взаимодействия, например HTTP запросов
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью