我正在为出租车/出租车服务设计一个数据库。有一张出租车服务详情表。
*出租车服务*
+---------------------+
| 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)每个区都有多个城镇/城市。
出租车服务可能会在多个地区提供服务。一个区可能有多个出租车服务。它是一种多对多的场景。
我正在尝试将 cab_services 表与位置表连接起来。但我不知道该怎么做。如果该地区只有一项服务,我会做这样的事情。
+-------+-------------+---------+
| SID | Name | Locs |
|-------+-------------+---------|
| S001 | ABC Taxi | CO |
|_______|_____________|_________|
但是就像我之前说的,一个服务可以有很多区。
+-------+-------------+---------+
| SID | Name | Locs |
|-------+-------------+---------|
| S001 | ABC Taxi | CO, KT |
|_______|_____________|_________|
这将违反 1NF。
我希望能够在这样的情况下获得结果,例如,如果用户使用位置名称进行搜索,他应该获得该区域的出租车服务。
我必须在我的数据库、表结构中进行哪些更改才能完成此操作?
如果某些部分令人困惑,请告诉我,我会尽力进一步澄清。我很不擅长解释事情。谢谢你。