Зачем нужна связь 1:1 в БД

«Зачем нужна связь 1:1 в БД» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Связь 1:1 (один к одному) в БД используется, когда одна сущность строго соответствует одной другой сущности. Основные причины:

  1. Разделение данных – например, таблица users и user_profiles для хранения редко используемых или чувствительных данных отдельно.
  2. Наследование – реализация таблиц по типу "родитель-потомок" (Table Per Hierarchy).
  3. Оптимизация – если часть данных часто запрашивается, а другая редко.

Пример в Go с GORM:

type User struct {
    ID       uint
    Username string
    Profile  UserProfile `gorm:"foreignKey:UserID"`
}

type UserProfile struct {
    UserID uint `gorm:"primaryKey"`
    Bio    string
}