複数の関係の間のMySQLのテベル
-
21-12-2019 - |
質問
ここは私の2つのテーブルの構造(イタリック体の太字および外部キーの主キー)
です。service_agreements( id 、client_id、mates_begin、duration、* services_id_1 *、* services_id_2 *、* services_id_3 *、* services_id_4 *) サービス( id 、date_provided、説明、staff_person)
表の背後にある考えは、契約に基づくものであり、当社は最大4回までのサービスを提供することです。 したがって、Service_agreementsテーブル(Services_ID_1、...)の4つのフィールドには、Services Tables(IDフィールド)と4つの別々の関係があります。 通常は2つのテーブルの間に1つの関係しか見られなかったので、少し珍しいようです。 SO.これが珍しいかどうかを知っているか、サービスのフィールドをサービスのフィールドをマージすることなく、サービステーブルにサービスのフィールドをマージすることなく、契約なしに提供されていないサービスのレコードもあります。)/ P>
解決
構造はさらにはいえたものでもあり得る:
service_agreements( id 、client_id、mates、date_begin、duration);
サービス( id 、date_provided、説明、staff_person);
service_agreements_services( id 、タイプENUM(Service1、Service 2など)、 service_agreement_id 、 service_id );
新しい表、 service_agreements_services service_agreementとサービスの間に1つの関係を追加します。
利点:
1)あなたが提供するすべての新しいサービスのために新しい挿入があるでしょう(通常は更新よりもオーバーヘッドが少ない)
2)あなたは大きなサービスを提供することさえできます:)
3)テーブルの関係が容易になります。
ありがとう