第二篇 预约模型:档期与占位

上篇把需求拆成六张表、把机器和架构都定了下来,这篇进入预约系统真正的深水区:档期和占位。预约系统做得好不好,八成取决于档期表设计得对不对、并发占位锁得住锁不住。

接下来四节按数据流转的顺序展开:先把时段容量表建起来,再让预约在并发下安全占位,然后到店扫码核销回收状态,最后处理客人不来了怎么办。每节都带可读的代码片段和我们真实踩过的坑,美甲店场景虽小,并发和一致性的问题一个都不少。

主题 核心问题 关键设计
档期设计 一天怎么切 时段容量表
并发占位 两人同时约 行锁加唯一索引
到店核销 怎么算来过 扫码写状态
退改规则 不来怎么办 超时释放与取消

如果只能记住一句话:预约系统的本质,就是把时间切成格子,然后保证格子不被多占。听起来简单,但国庆当天十七个人撞在同一时段的教训告诉我们,格子这件事一旦靠人脑维护,出错只是时间问题。

写这篇的时候正好是系统上线第三个月,三家门店日均预约从零涨到一百八十单,档期模型撑住了所有高峰,没有再出现一次重复占用。

延伸阅读