> Какая связь между таблицами людей и адресов в базе данных (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: Wildberries

Стек: Go

> Пример ответа

Связь между таблицами людей и адресов в базе данных обычно реализуется как "один ко многим" (one-to-many). Это означает, что один человек может иметь несколько адресов (например, постоянный, временный, рабочий), но каждый адрес принадлежит только одному человеку.

В реляционной схеме это выглядит так:

  • Таблица people содержит уникальный идентификатор (id).
  • Таблица addresses содержит внешний ключ person_id, ссылающийся на people.id.

Пример на Go с использованием SQL (например, PostgreSQL):

GO
type 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.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью