私はあなたのコードを実行しようとしましたが、行はうまく作成されているようです:
CREATE TABLE IF NOT EXISTS `main_dashboard` (`title` VARCHAR(255), `id` INTEGER NOT NULL auto_increment , `idClient` INTEGER, PRIMARY KEY (`id`)) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `main_client` (`id` INTEGER NOT NULL auto_increment, `clientId` INTEGER, PRIMARY KEY (`id`)) ENGINE=InnoDB;
clientId
に追加されmain_client
、 にidClient
追加されますmain_dashboard
hasOne
メソッドが何をするのか少し混乱しているようです。呼び出すたびhasOne
に関連付けが作成されるため、コードは 2 つのテーブルを効果的に 2 回関連付けます。あなたが探している方法はbelongsTo
各クライアントに 1 つのダッシュボードが必要な場合、コードは次のようになります。
MainClient.hasOne(MainDashboard, { foreignKey: 'clientId' })
MainDashboard.belongsTo(MainClient, { foreignKey: 'clientId' })
これにより、テーブルのフィールドに関連するテーブルにclientId
フィールドが作成されますmain_dashboard
id
main_client
つまりbelongsTo
、メソッドを呼び出しているテーブルにリレーションを追加し、hasOne
引数として指定されたテーブルに追加します。