我正在学校开展一个项目,我很想将旅行计划功能添加到我的网络应用程序中。 有关此功能的更多详细信息,用户始终可以拥有起点和终点目的地,并且可以添加 他们想要多少个停靠点。此外,还会有一张地图来指路。
数据库应该如何设计? 我需要使用第三服务来获取地图吗?
但是说实话,我经验不足,所以我仍然不知道从哪里开始 我应该如何设计数据库? 我需要使用第三服务来获取地图吗?
P/s:我知道这可能是一个非常广泛的问题,但感谢任何帮助
数据库应该如何设计? 我需要使用第三服务来获取地图吗?
正如您所说,这是一个广泛的问题。为了设计您的功能,您需要更具体地了解您的功能需求,并回答尽可能多的问题以澄清需求,例如:
但是,我尝试与您一起设计一项服务来回答更多您的问题。我假设用户有一个可以标记某个位置的 UI,并且您可以获取
latitude
和 longitude
(类似于 Uber 应用程序)。
trips
表用于存储行程的基本信息,例如哪个用户创建了它,可能有名称、创建时间等。locations
用于存储起点和目的地点的表、与行程的关系字段、作为枚举的位置类型以了解它是起点还是目的地点,以及用于维护位置顺序的序列字段。现在我们有了数据库,假设我们有一个端点,可以将行程详细信息返回给用户,如下例所示:
GET /api/v1/trips/${id}
{
"id": ${id}
"trip_name": "My Awesome Trip",
"locations": [{
"type": "origin",
"latitude": 52.377956,
"longitude": 4.897070,
"sequence": 1
}, {
"type": "destination",
"latitude": 1.3139946,
"longitude": 103.8134,
"sequence": 2
}, {
"type": "destination",
"latitude": -37.840935,
"longitude": 144.946457,
"sequence": 3
}, ...]
}
您不一定需要使用
Google Maps
API,还有其他工具可以让您在网站上拥有地图,例如 Open Street Map
和 leaflet
。由于地图的维护,最好使用第三方地图。您会发现很多关于如何将此库与前端代码集成的资源。
我希望这个原始设计可以帮助您构建我们的设计。