В настоящее время используется:
Sequelize, Postgres, Nodejs
Положение:
У меня есть модель User
с некоторыми личными данными (firstName
, lastName
, dateOfBirth
, ...)
Модель User
имеет несколько ассоциаций hasOne
с другими моделями (UserAddress
, UserContact
, ...), которые в свою очередь имеют ассоциацию belongsTo
с соответствующими User
. Проверка таблиц показывает, что эти другие модели имеют столбец UserUuid
.
В своем интерфейсе я хочу сразу же уведомить пользователя о том, какую информацию он заполнил для адреса, телефонного контакта и т. Д.
Я создал модель UserDetail
, которая содержит столбец для каждой из таблиц для получения дополнительной информации, принимая ENUM
с параметрами empty
, incomplete
, complete
. UserDetail
имеет hasOne
ассоциации с этими моделями, которые также имеют belongsTo
ассоциацию взамен.
Также User
hasOne
UserDetail
& UserDetail
belongsTo
User
.
Это самая эффективная установка?
Мне интересно, может ли это использовать ассоциацию through
, потому что любая таблица, такая как UserAddress
, имеет столбец UserUuid
, а также столбец UserDetailId
. Тем не менее, в документах с секвелированием, по-видимому, используются ассоциации through
только тогда, когда существует отношение belongsToMany
или hasMany
, поскольку в этом случае используется только 1: 1.