本次作业是关于数据库设计和实现的项目,主要关注于两个数据库系统:MySQL和MongoDB。作业内容包括以下几个关键部分:
1. **项目结构**:
- 项目分为两个主要部分:MySQL部分和MongoDB部分。每个部分都有各自的辅助类和核心类,例如Helper包、MySQL包和Mongo包,用于支持数据库操作。
- Test包包含了针对MySQL的并发测试,使用TestNG工具进行测试。
2. **数据库设计**:
- **USERS表**:存储用户信息,包括用户ID、电子邮件、姓名和密码,以及身份证号。这是一张基础的用户身份信息表,用于管理用户注册和验证。
- **ROUTE表**:存储列车和车次信息,包括线路ID(如G101)和线路站点信息,如从上海虹桥到广州南的路径。
- **SEAT表**:存储座位信息,可能包含座位编号、所属列车线路、状态等字段。
- **R_ORDER表**:用于存储订单信息,可能包括订单ID、用户ID、车次ID和座位ID等。
3. **功能描述**:
- **查询车票**:用户可以通过系统查询特定车次的剩余座位信息,这是系统的基础功能,测试了查询逻辑的正确性和效率。
- **车票购买及打印**:用户可以购买车票,并能生成订单,可能涉及并发控制,以确保购票过程的公平性。
4. **并发处理**:
- 关于并发,作业特别关注并发测试,包括集中查票测试和买票并发测试,以确保在多用户同时操作时系统的稳定性和性能。
5. **数据库优化**:
- 建表策略:考虑到了表结构的设计,包括减少数据冗余和提高查询效率。
- 数据插入:可能讨论了批量插入和索引优化等方法。
- 数据库连接:涉及到数据库连接池的管理和优化,以降低资源消耗。
6. **MONGO部分**:
- MongoDB的COLLECTION创建和数据插入,以及查询和购买车票的功能实现。
- 数据库优化方面,分析了COLLECTION设计和查询效率的关系。
7. **对比与异同**:
- MySQL与MongoDB之间的差异,如数据模型、查询语言和并发控制策略的比较。
这次数据库第三次作业涵盖了从设计用户和车次信息表,到实现查询和购买功能,再到并发测试和数据库优化等多个环节,具有较强的实践性和技术深度。