タクシー/タクシー サービス用のデータベースを設計しています。タクシーサービス詳細の表があります。
*cab_services*
+---------------------+
| SID | Name |
|---------------------|
| S001 | ABC Taxi |
| S002 | XYZ Cabs |
| S003 | MN Taxi |
| S004 | OP Cabs |
|_______|_____________|
そして、場所用の別のテーブルがあります。
場所
+-----------------------------------+
| LID | Code | Location |
|----------------|------------------|
| L001 | CO | Akarawita |
| L002 | CO | Angamuwa |
| L003 | CO | Batawala |
| L004 | CO | Avissawella |
| L005 | CO | Battaramulla |
| L006 | GQ | Ambepussa |
| L007 | GQ | Bemmulla |
| L008 | GQ | Biyagama |
| L008 | GQ | Alawala |
| L010 | GQ | Andiambalama |
| L011 | GQ | Biyagama IPZ |
| L012 | KT | Bellana |
| L013 | KT | Bolossagama |
| L014 | KT | Bombuwala |
| L015 | KT | Alutgama |
| L016 | KT | Alubomulla |
|_______|________|__________________|
地区ごとに分類されていることに注意してください。( CO、GQ、KT ) 各地区には複数の町/市があります。
タクシー サービスは、複数の地区でサービスを提供している場合があります。また、1 つの地区に複数のタクシー サービスがある場合もあります。一種の多対多のシナリオです。
cab_services テーブルを location テーブルに接続しようとしています。しかし、方法がわかりません。地区にサービスが 1 つしかない場合、私はこのようなことをしたでしょう。
+-------+-------------+---------+
| SID | Name | Locs |
|-------+-------------+---------|
| S001 | ABC Taxi | CO |
|_______|_____________|_________|
しかし、前に述べたように、サービスには多くの地区を含めることができます。
+-------+-------------+---------+
| SID | Name | Locs |
|-------+-------------+---------|
| S001 | ABC Taxi | CO, KT |
|_______|_____________|_________|
これは 1NF に違反します。
たとえば、ユーザーが場所の名前を使用して検索した場合、その地域のタクシー サービスを取得する必要があるなどの状況で結果を取得できるようにしたいと考えています。
これを達成するには、データベース、テーブル構造にどのような変更を加える必要がありますか?
わかりにくい部分がある場合はお知らせください。さらに明確にするために最善を尽くします。私は物事を説明するのがかなり苦手です。ありがとうございました。