У меня есть модель User
и модель Interaction
- они связаны во многих отношениях с моделью InteractionDetails
. Однако каждое взаимодействие может иметь несколько users
, связанных с ним. то есть interaction
имеет userId
для пользователя, который создал взаимодействие, он имеет internalUserId
для пользователя, которому было адресовано взаимодействие, и имеет noteUserId
, если был пользователь, который сделал примечание / комментировать взаимодействие.
В настоящее время я смотрю на следующую структуру таблицы для этого:
Возможно ли это ? Если так, как бы я go сделал это на Sequelize?
Нужно ли мне добавлять каждую ассоциацию к моделям User
и Interaction
и просто изменять параметры foreignKey
и as:
в ассоциации, например:
// User.js model
User.belongsToMany(models.Interactions, {
through: models.InteractionDetails,
as: 'interactions',
foreignKey: 'userId',
otherKey: 'interactionId'
})
User.belongsToMany(models.Interactions, {
through: models.InteractionDetails,
as: 'interactionInternal',
foreignKey: 'internalUserId',
otherKey: 'interactionId'
})
Или мне нужно иметь всего 1 foreignKey
(т. Е. Столбец userId
) и иметь отдельные строки для хранения каждого типа пользователя (т. Е. internalUser
, noteUser
et c.)?