Sequelizeの関連付けヘルパーメソッドを使用してデータベーステーブルを関連付ける方法


  1. 1対1の関連付け: 1対1の関連付けを作成するには、hasOnebelongsToメソッドを使用します。例えば、UserとProfileという2つのモデルがある場合、以下のように関連付けを定義できます。

    // Userモデル
    const User = sequelize.define('User', {
     // ユーザーの属性を定義
    });
    // Profileモデル
    const Profile = sequelize.define('Profile', {
     // プロフィールの属性を定義
    });
    // 関連付けを定義
    User.hasOne(Profile);
    Profile.belongsTo(User);
  2. 1対多の関連付け: 1対多の関連付けを作成するには、hasManybelongsToメソッドを使用します。例えば、UserとTaskという2つのモデルがある場合、以下のように関連付けを定義できます。

    // Userモデル
    const User = sequelize.define('User', {
     // ユーザーの属性を定義
    });
    // Taskモデル
    const Task = sequelize.define('Task', {
     // タスクの属性を定義
    });
    // 関連付けを定義
    User.hasMany(Task);
    Task.belongsTo(User);
  3. 多対多の関連付け: 多対多の関連付けを作成するには、belongsToManyメソッドを使用します。例えば、UserとGroupという2つのモデルがあり、中間テーブルとしてUserGroupがある場合、以下のように関連付けを定義できます。

    // Userモデル
    const User = sequelize.define('User', {
     // ユーザーの属性を定義
    });
    // Groupモデル
    const Group = sequelize.define('Group', {
     // グループの属性を定義
    });
    // 中間テーブル
    const UserGroup = sequelize.define('UserGroup', {
     // 関連付けのための属性を定義
    });
    // 関連付けを定義
    User.belongsToMany(Group, { through: UserGroup });
    Group.belongsToMany(User, { through: UserGroup });

上記のコード例では、Sequelizeの関連付けヘルパーメソッドを使用して、1対1、1対多、多対多の関連付けを定義する方法を示しています。これらの関連付けを使用すると、データベーステーブル間の関連を簡単に操作できるようになります。