Создать отношение один к одному sequelize?

Для создания отношения "один к одному" с использованием Sequelize, необходимо определить две модели и установить связь между ними.

Рассмотрим пример создания отношения "один к одному" между моделями User и Profile.

1. Определение моделей:

// Модель User
const User = sequelize.define('User', {
  // поля модели User
});

// Модель Profile
const Profile = sequelize.define('Profile', {
  // поля модели Profile
});

2. Установка связи:
Для установки связи "один к одному" в Sequelize используется метод hasOne для одной модели и метод belongsTo для другой модели.

User.hasOne(Profile); // Устанавливаем связь: User имеет один Profile
Profile.belongsTo(User); // Устанавливаем связь: Profile принадлежит к User

3. Настройка дополнительных параметров связи:
При необходимости можно настроить дополнительные параметры для связи, такие как название поля внешнего ключа и ограничение на удаление записей.

User.hasOne(Profile, {
  foreignKey: 'user_id', // название поля внешнего ключа
  onDelete: 'CASCADE' // ограничение на удаление записей
});

Profile.belongsTo(User, {
  foreignKey: 'user_id' // название поля внешнего ключа
});

4. Применение изменений в базе данных:
После определения моделей и установки связей, необходимо выполнить синхронизацию с базой данных для создания таблиц.

sequelize.sync()
  .then(() => {
    console.log('Таблицы созданы');
  })
  .catch((error) => {
    console.error('Ошибка при создании таблиц:', error);
  });

В результате выполнения этих шагов, будет создано две таблицы в базе данных - Users и Profiles. В таблице Profiles будет создано поле user_id, которое будет использоваться для связи с таблицей Users.

Теперь вы можете работать с моделями, создавать, обновлять и удалять записи, и использовать связанные данные.

Пример создания связанных записей:

User.create({
  // данные пользователя
}).then((user) => {
  Profile.create({
    // данные профиля
    user_id: user.id // связываем созданный профиль с пользователем
  }).then((profile) => {
    console.log('Создан пользователь и профиль:', user, profile);
  });
});

Это основы работы с отношением "один к одному" в Sequelize. Вы можете настроить дополнительные параметры связи, добавить валидации и использовать другие возможности ORM Sequelize. Все это документировано на официальном сайте Sequelize.