Ответ
Связь 1:1 (один к одному) в БД используется, когда одна сущность строго соответствует одной другой сущности. Основные причины:
- Разделение данных – например, таблица
usersиuser_profilesдля хранения редко используемых или чувствительных данных отдельно. - Наследование – реализация таблиц по типу "родитель-потомок" (Table Per Hierarchy).
- Оптимизация – если часть данных часто запрашивается, а другая редко.
Пример в Go с GORM:
type User struct {
ID uint
Username string
Profile UserProfile `gorm:"foreignKey:UserID"`
}
type UserProfile struct {
UserID uint `gorm:"primaryKey"`
Bio string
}