diff --git a/docs/grokking/chapter-16.md b/docs/grokking/chapter-16.md index c78c48f..5607275 100644 --- a/docs/grokking/chapter-16.md +++ b/docs/grokking/chapter-16.md @@ -6,3 +6,31 @@ 难度等级:困难 +## 1. 什么是在线电影票预订系统? +在线电影票预订系统为用户提供在线购买影院座位的功能。电子票务系统允许用户随时随地浏览当前上映的电影并预订座位。 + +## 2. 系统的需求与目标 +我们的票务预订服务应满足以下要求: + +**功能性需求:** +1. 票务预订服务应能列出其合作影院所在的不同城市。 +2. 用户选择城市后,系统应展示该城市上映的电影。 +3. 用户选择电影后,系统应展示播放该电影的影院及可用场次。 +4. 用户应能选择特定影院的场次并预订电影票。 +5. 系统应显示影厅的座位分布情况,用户可根据自己的偏好选择多个座位。 +6. 用户应能区分可用座位和已预订座位。 +7. 用户在支付前可暂时锁定座位,锁定时间为 5 分钟。 +8. 用户应能选择等待座位释放,例如当其他用户的锁定时间到期时。 +9. 等待用户应按公平的“先到先得”原则进行服务。 + +**非功能性需求:** +1. 系统需要支持高并发。同一座位可能会在同一时间收到多个预订请求,系统应能公平且稳定地处理。 +2. 票务预订涉及金融交易,因此系统需具备安全性,并确保数据库符合 ACID 特性。 + +## 3. 设计考量 +1. 为简化设计,假设系统不要求用户身份验证。 +2. 系统不支持部分订单处理,用户要么获取全部所选票,要么无法成功预订。 +3. 系统必须确保公平性。 +4. 为防止滥用,系统可限制用户单次最多预订 10 张票。 +5. 预计热门电影上映时流量会激增,座位将迅速被预订。因此,系统应具备良好的可扩展性和高可用性,以应对流量高峰。 +