為什么80%的碼農都做不了架構師?>>> ??
車輛調度系統 ??
大體上分為4個部分吧
1.調度車輛:你調度的時候需要的車輛,方便給你運輸啥的
2.調度任務:你為啥會調度車輛,肯定要有一個任務
3.客戶:那這個車輛為誰調度呢?
4.用戶:誰創建了這個任務,并且發起了調度,或者是誰主導了這個任務
?
這些問題弄清楚之后,我們就可以想象一下這個流程了
?
客戶發起了一個調度任務,用戶去調度車輛執行這個任務,然后接到任務的調度車輛去完成這個任務。完成任務之后,客戶接收到任務完成之后的結果,大功告成。
?
雖然說,這樣分析起來很簡單,但是簡單的背后是復雜的邏輯關系
比如說:調度車輛怎么分配,每個調度車輛都是平等的關系嗎?如果一個任務發送出去了,每個車輛都能接收到這個任務嗎?如果說每個車輛都能接收到這個任務的話,時間和成本應該怎么算,誰去執行,怎么執行。等等這些問題都是要考慮的。
?
1.執行任務的時候,車輛都是哪里都有。所以肯定不是有任務都直接發送出去的
2.執行任務的時候,車輛調度的距離遠近,結算也是不同的,所以肯定要求最優化解決方案
3.執行任務的時候,對時間也是有要求的
4.對質量和服務也是有要求的
5.如果調度車輛已經接了很多單子,肯定也不會讓他們在接單了,影響執行速度
6.每個任務都有對調度車輛和司機的限制的,所以車輛類型和司機的整體也是有要求的
7.因為一些原因,遲到或者是出現問題的處理
等等一些原因,如果這些原因都解決好了,那么這些問題我覺得70%左右的問題都解決了。
?
之后我們來分析一下車輛調度的時候我們的實體該如何設計
1.調度車輛
??? ? 我們現在看到的大街上,好多送餐的車,像餓了么,美團,百度等等,你們看他們的車子,有很多不是自己的,也有自己的,像餓了么找的是蜂鳥快送,應該是吧,我忘記了,百度好像是自己的,是餓了么。實際上我覺得有一部分都是找的第三方的公司接的單。然后到一個月或者是一個季度結算一次,這些我就不清楚了。
這個問題說明,最少得有一個第三方調度公司表,然后我覺得還有區域表,在有個調度車輛表,還有一個登陸上線的司機表,為啥呢?
1.第三方調度公司表:很清楚了,就是車輛所在的公司
2.區域表:我覺得,這些車輛應該有一個位置范圍,他不可能那里都跑,這也不合理
3.調度車輛表:這個就清楚了,需要調度的車輛
4.司機表:他們肯定得有個App或者是啥東西吧,等接受到任務的,我怎么知道他們能不能上線,肯定得有個表記錄一下他們的上下線的狀態啥的
?
?
2.調度任務
? ? 調度任務:相比于我來說,我想點個餐,然后這個點餐這個過程,我覺得應該是先發起一個點餐的任務,然后后臺接收到這個任務,接收到任務之后,在把任務分配給調度車輛,然后調度車輛接到這個調度任務之后把相應的東西運送到目的地,然后結束掉。
? ? 首先啊,肯定要有個任務表,來記錄任務,然后有個調度表,來記錄任務調度的狀態,比如說任務調度給了調度車輛,然后車輛開始執行任務,車輛到達目的地,車輛完成任務等等。之后呢還需要車輛提供一下在這個任務中行走的軌跡,我們好知道他到哪里了,方便給客戶推送實時信息。所以說呢?這里面的表包括
1.任務表:記錄任務的
2.調度表:記錄調度車輛狀態信息的
3.坐標軌跡表:可以清楚的了解車輛信息的位置的
? ? ? ?但是呢,這個估計還不全,因為上面講到了,這個任務有可能是特殊的,我們可能還需要加一個擴展表來滿足它的特殊性,然后每個任務都是要對司機進行結算的,所以我們要有一個結算表來記錄司機和任務的結算方式的。所以:
1.任務表:記錄任務的
2.調度表:記錄調度車輛狀態信息的
3.坐標軌跡表:可以清楚的了解車輛信息的位置的
4.任務擴展表:記錄特殊信息
5.結算表:記錄司機和任務的結算金額
?
?
客戶:
客戶涉及到車輛服務的人群,所以首先有個客戶表,根據客戶的需求,可以在擴展出來其他的表
客戶表
?
用戶
用戶包括組織權限,菜單,權限,角色,崗位,部門等等
用戶表
用戶角色表
角色表
菜單表
角色菜單表
權限表
崗位表
崗位菜單表
部門表
?