は「は、多くに属して」オブジェクトが緩く一緒に結び付けられているところです。 stores
とmanagers
のアナロジーを使用した場合、1つの店舗には多くの管理者がおり、1つの店舗には多くの店舗があります(その動作方法は不明です、おそらくロービングマネージャーですか?:P)。
まず、マネージャーストアで使用する例はHABTMではないと思います。ただ一つのstore
には多くのものがあるmanagers
で、多くはstores
ではありません。ここでHABTMを使用すると、複数の店舗に同時に所属することができます。しかし、私はとにかく説明します。
HABTMを使用する場合、この関係にはおそらくmanager_stores
などと呼ばれる中間テーブルが必要です。自動化されたツールを使用している場合、これはCakePHPによって自動的に設定されます。これにより、無制限の数のマネージャーを無制限の数の店舗にリンクすることができます。
レコードを更新および削除すると、MySQLの関係(InnoDBエンジンを使用する必要があります)の設定によって異なります。
これは、を使用している関係の種類に関係なくです。
phpMyAdminを使用している場合は、テーブルの構造ビューに移動します。次に、「関係ビュー」をクリックします。
InnoDBを正しく設定すると、関係と2つの列が "ON UPDATE
"と "ON DELETE
"と表示されます。これは、レコードを変更するときの動作を決定します。
さまざまなタイプのON DELETEアクションとON UPDATEアクションを説明しています。リレーショナルデータベースのクエリを調べてみてください!
私はこれが少し助けてくれることを願っています。私はあなたが持っている質問に喜んで答えます!
ありがとうございます。私はそのようにします。私は本当になぜそれが..このデフォルトの動作の背後にあるログインは何かを理解していないのですか? – yossi
デフォルトでは、モデルの「絶対状態」が保存されます。マネージャーレコードを保存するように指示しています。これは、店舗4,5,6に関連付けられています。これは、マネージャーが店舗4,5,6を持っていることを意味します。これは理にかなっています1つのインターフェイス(通常、関連タグ付きのブログ記事)内で管理される関連性の少ない単純なモデルの場合 – deceze