Могу ли я иметь несколько внешних ключей для одной и той же таблицы в одной таблице соединений в sequelize и как? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть модель User и модель Interaction - они связаны во многих отношениях с моделью InteractionDetails. Однако каждое взаимодействие может иметь несколько users, связанных с ним. то есть interaction имеет userId для пользователя, который создал взаимодействие, он имеет internalUserId для пользователя, которому было адресовано взаимодействие, и имеет noteUserId, если был пользователь, который сделал примечание / комментировать взаимодействие.

В настоящее время я смотрю на следующую структуру таблицы для этого:

Interaction details table_redacted

Возможно ли это ? Если так, как бы я 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.)?

...