В настоящее время я экспериментирую с sequelize.js и, более конкретно, с ассоциациями. То, что я пытаюсь достичь, заключается в следующем. У меня есть модели:
- Пользователь
- положение
Моя логика следующая:
- Пользователь может иметь или не иметь назначенной ему позиции
- Если у пользователя есть позиция, ее идентификатор сохраняется в поле "assignPositionId" таблицы пользователей.
- Если у пользователя нет позиции, то значение «assignPositionId» устанавливается равным нулю.
- Позиция может быть назначена более чем одному пользователю
Проблема, с которой я сталкиваюсь, заключается в том, что я могу успешно создать пользователя, но я не могу создать позицию! Я всегда получаю сообщение об ошибке:
SQLITE_ERROR: foreign key mismatch - "positions" referencing "users"
User.hasOne(Position, {
sourceKey: "assignedPositionId",
foreignKey: "id",
as: "position"
});
Position.hasMany(User, {
sourceKey: "id",
foreignKey: "assignedPositionId",
as: "users",
});
Я знаю, что это более чем просто - может быть, уже поздно, но я действительно не могу понять, что идет не так! Ваша помощь высоко ценится!