ここに私の問題があります: (MySQL を使用)
「ショップ」と「クライアント」という 2 つのエンティティがあります。また、'clients' と 'shops' の間に 'clients_shops' (CakePHP 命名規則) と呼ばれる M:M テーブルがあります。私がこのようにしている理由は、これが「クライアント」が多くの「ショップ」を持つ可能性があり、「ショップ」が間違いなく多くの「クライアント」を持つ SaaS アプリケーションであるためです。
ただし、実際に必要なのは、「ショップ」が自分のレコードからではなく、自分のレコードからその「クライアント」を編集/削除することであるため、ショップに「クライアント」レコードを更新/削除する機能を与えたくありません。 「clients」によって管理されるマスター「clients」テーブル。
とにかく、この構造を使用すると、「ショップ」は「clients_shops」テーブルでクエリを実行してクライアントのリストを取得でき、「クライアント」はクエリを実行して「ショップ」のリストを取得できます。これまでのところ良い...
これまでのところ、データベースは次のようになっています。
table.clients
client_id (PK, AI, NN)
table.shops
shop_id (PK, AI, NN)
table.clients_shops
clients_shops_id (PK,AI,NN)
client_id (FK)
shop_id (FK)
ORM は次のようになります。
shops hasMany clients_shops
clients hasMany clients_shops
これまでのところは順調です(私は思う...)が、ここで私の質問です。「trips」という名前の 3 番目のテーブルがあるとします。「トリップ」テーブルには、「店」が提供する「旅行」を「顧客」が予約する個々の予約に関する情報が格納されます。これは私の脳がどろどろになっているところです。この関係をどのように設定すればよいですか?
この方法ですか:
table.trips
trips_id (PK,AI,NN)
clients_shops_id (FK) [which would contain keys for both the shop and the client]
clients.client_id
または、 ANDを使用する別のテーブルのように、これを行うためのより良い方法がありますclients_shops.clients_shops_id
。
このすべてを実際に読んでくれた人に、前もって感謝します!