私はちょうどあなたのコードを実行しようと、行は罰金を作成しているように見える:
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つのテーブルを効果的に関連付けます。これが関連main_dashboardテーブル上のClientIDフィールドを作成し
MainClient.hasOne(MainDashboard, { foreignKey: 'clientId' })
MainDashboard.belongsTo(MainClient, { foreignKey: 'clientId' })
:あなたが探している方法を使用すると、各クライアントが1つのダッシュボードを持っているしたい場合は、コードは次のようになりbelongsTo
ですid_fieldのフィールド
簡潔には、belongsTo
は、メソッドを呼び出すテーブルにリレーションを追加します。hasOne
は、引数として与えられたテーブルにそれを追加します。
よろしくお願いいたします。実際、これは単なる愚かな例です。 @ dankohnと同様に、データベースレベルの外部キー制約が必要です。 – swampcypress