新人求教关于拼车系统的设计问题
初来乍到,表达能力也一般,还望各位多包含、多指教
这个系统跟传统的拼车有所区别,是根据我们这边的一些私营车队(类似汽车站线路车)作为参照物来思考的
系统的功能大致如下:
1、订单
2、线路(某城市至某城市,往返)
3、车队(类似用户组,归类属于某城市至某城市线路的司机,并排序)
4、司机
根据自己观察后思考所得的业务需求应该如下:
1、用户下单至系统,数据包含出发城市、目的城市、人数、出发时间
2、系统按照如下条件完成分配:
2.1、根据用户的出发地和目的地匹配到属于该线路的车队
2.2、根据用户的出发地匹配到该车队内目前在当前城市的司机(按照车队内司机的先后顺序)
2.3、检索已分配给该司机的订单,并统计其订单内人数总和是否大于4,假设当前司机已存在系统分配订单的人数总和已经达到3人,而当前新订单的人数是2人,总和大于4,则将该新订单自动分配给下一位司机
2.4、满足以上条件后将该司机置于发车状态
目前打算将车队及车队内司机用以下格式做redis缓存
<code>array( array( 'name' => '车队1', 'route' => '1,2', // 线路所属的两个城市的id,用这种格式比较好判断 'members' => array( array('司机1', '电话', 序号, 所在城市id, ...), array('司机2', '电话', 序号, 所在城市id, ...), array('司机3', '电话', 序号, 所在城市id, ...) ) ), array( 'name' => '车队2', 'route' => '3,4', // 线路所属的两个城市的id,用这种格式比较好判断 'members' => array( array('司机1', '电话', 序号, 所在城市id, ...), array('司机2', '电话', 序号, 所在城市id, ...), array('司机3', '电话', 序号, 所在城市id, ...) ) ) ... );</code>
以上都是我自己思考而来,起初只是为了测试自己的程度,但是现在还没走多远就卡在了订单分配这个环节,求大神指点一二,程序上也好,数据库设计上的也好,非常感谢。
回复内容:
初来乍到,表达能力也一般,还望各位多包含、多指教
这个系统跟传统的拼车有所区别,是根据我们这边的一些私营车队(类似汽车站线路车)作为参照物来思考的
系统的功能大致如下:
1、订单
2、线路(某城市至某城市,往返)
3、车队(类似用户组,归类属于某城市至某城市线路的司机,并排序)
4、司机
根据自己观察后思考所得的业务需求应该如下:
1、用户下单至系统,数据包含出发城市、目的城市、人数、出发时间
2、系统按照如下条件完成分配:
2.1、根据用户的出发地和目的地匹配到属于该线路的车队
2.2、根据用户的出发地匹配到该车队内目前在当前城市的司机(按照车队内司机的先后顺序)
2.3、检索已分配给该司机的订单,并统计其订单内人数总和是否大于4,假设当前司机已存在系统分配订单的人数总和已经达到3人,而当前新订单的人数是2人,总和大于4,则将该新订单自动分配给下一位司机
2.4、满足以上条件后将该司机置于发车状态
目前打算将车队及车队内司机用以下格式做redis缓存
<code>array( array( 'name' => '车队1', 'route' => '1,2', // 线路所属的两个城市的id,用这种格式比较好判断 'members' => array( array('司机1', '电话', 序号, 所在城市id, ...), array('司机2', '电话', 序号, 所在城市id, ...), array('司机3', '电话', 序号, 所在城市id, ...) ) ), array( 'name' => '车队2', 'route' => '3,4', // 线路所属的两个城市的id,用这种格式比较好判断 'members' => array( array('司机1', '电话', 序号, 所在城市id, ...), array('司机2', '电话', 序号, 所在城市id, ...), array('司机3', '电话', 序号, 所在城市id, ...) ) ) ... );</code>
以上都是我自己思考而来,起初只是为了测试自己的程度,但是现在还没走多远就卡在了订单分配这个环节,求大神指点一二,程序上也好,数据库设计上的也好,非常感谢。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL은 데이터베이스 관리 시스템이며 Phpmyadmin은 MySQL을 관리하기위한 웹 도구입니다. 1.MYSQL은 데이터를 저장하고 관리하는 데 사용되며 SQL 작업을 지원합니다. 2.PHPMYADMIN은 데이터베이스 관리를 단순화하기위한 그래픽 인터페이스를 제공합니다.

phPapplicationSCanBeoptimizedForsPeedandefficiencyby : 1) ENABLEOPCACHEINPHP.INI, 2) PREPAREDSTATEMENTSWITHPDOFORDATABASEQUERIES 사용

Navicat과 MySQL은 데이터베이스 관리 및 개발 효율성을 향상시킬 수 있기 때문에 완벽하게 일치합니다. 1.Navicat은 MySQL 작업을 단순화하고 그래픽 인터페이스 및 자동 생성 SQL 문을 통해 작업 효율성을 향상시킵니다. 2.Navicat은 지역 및 원격 관리를 용이하게하는 여러 연결 방법을 지원합니다. 3. 고급 사용에 적합한 강력한 데이터 마이그레이션 및 동기화 기능을 제공합니다. 4.Navicat은 성능 최적화 및 일반 백업 및 쿼리 최적화와 같은 모범 사례에 도움이됩니다.

MySQL과 Oracle의 주요 차이점은 라이센스, 기능 및 장점입니다. 1. 라이센스 : MySQL은 무료 사용을위한 GPL 라이센스를 제공하고 Oracle은 독점 라이센스를 채택합니다. 2. 기능 : MySQL에는 간단한 기능이 있으며 웹 응용 프로그램 및 중소 기업에 적합합니다. Oracle은 강력한 기능을 가지고 있으며 대규모 데이터 및 복잡한 비즈니스에 적합합니다. 3. 장점 : MySQL은 오픈 소스 무료이며 스타트 업에 적합하며 Oracle은 성능이 신뢰할 수 있으며 대기업에 적합합니다.

MySQL은 탁월한 성능과 사용 편의성 및 유지 보수로 인기가 있습니다. 1. 데이터베이스 및 테이블 작성 : CreateABase 및 CreateTable 명령을 사용하십시오. 2. 데이터 삽입 및 쿼리 데이터 : insertinto 및 select 문을 통해 데이터를 작동합니다. 3. 쿼리 최적화 : 인덱스를 사용하고 설명을 설명하여 성능을 향상시킵니다.

의존성 주입 (DI)을 사용하는 이유는 코드의 느슨한 커플 링, 테스트 가능성 및 유지 관리 가능성을 촉진하기 때문입니다. 1) 생성자를 사용하여 종속성을 주입하고, 2) 서비스 로케이터 사용을 피하고, 3) 종속성 주입 컨테이너를 사용하여 종속성을 관리하고, 4) 주입 종속성을 통한 테스트 가능성을 향상 시키십시오.

Phpmyadmin은 웹 인터페이스를 통해 MySQL 데이터베이스 관리를 단순화합니다. 1) 데이터베이스 및 테이블 작성 : 그래픽 인터페이스를 사용하여 쉽게 작동합니다. 2) 복잡한 쿼리 실행 : SQL 편집기를 통해 구현 된 Join Query와 같은 실행. 3) 최적화 및 모범 사례 : SQL 쿼리 최적화, 인덱스 관리 및 데이터 백업 포함.

toImprovePhPapplicationSpeed, followthesesteps : 1) enableOpCodeCachingWithApcuTeCeScripteXecutionTime.2) 구현 구현
