主题:【原创】身为码农,为12306说两句公道话 -- 代码狗
收到有同行质疑136个库存的合理性,他提出的方案是:
北京西(01号站)到深圳北(17号站)一共设置16个商品:
SKU01:01号站 到 02号站
SKU02:02号站 到 03号站
...
SKU16:16号站 到 17号站
如果出一张01号站到17号站的票,就把SKU01/SKU02....SKU16这16个SKU的库存都减一。
这种做法是可以运行的。我原来参与设计的一个ERP系统就是这样的做的。
16个商品方案的优点是商品数会比较少,缺点在于查询性能较低,要查询16次才能知道【北京西到深圳北】还有没有余票。而136个商品的设计,穷举了所有出发和到达站点的组合,出票前只需要查询1次库存就知道还有没有余票。
大部分面向公众的网站,其业务特点都是读多写少。电商系统的库存查询次数更是远远多于库存修改次数的。在秒杀系统中,可能会出现99%的请求查库存1%请求改库存的情况。
像12306春运抢票这种场景,在秒杀工具(抢票软件)的推波助澜下,查询1万次库存才成功出一张票也不是没有可能。
还有人说,KFC的食品可以单卖,也可以套餐,为什么没像我一样搞出这么多SKU,那是因为,KFC门店的人肉查询频率非常低,没有必要为了优化查询性能把库存结构设计成那样。KFC网上订餐比门店的查询压力大一点,但只要不是像12306那样全站商品都秒杀,也是不需要为了优化查询性能把库存结构设计成那样的。
- 相关回复 上下关系8
🙂好好看看你的观点,这是乱扣帽子? 梓童 字58 2014-01-13 07:37:04
🙂你放那种气体! 天马行空 字288 2014-01-13 08:02:36
😁百度知道已经有人问“2克浓度为3%的U235在大亚湾核电 14 常挨揍 字238 2014-01-11 22:26:42
🙂为什么G71每种座位是136个商品,而不是16个
🙂为什么要查16次呢 浪迹猫 字194 2014-01-14 03:31:45
🙂这样本质上就是在维护136种组合的最小值 否定之否定 字21 2014-01-14 16:14:51
🙂16和136种商品维护的难度一样吗 浪迹猫 字58 2014-01-14 22:08:36
🙂你的方案和楼主本质上是一样的 1 否定之否定 字376 2014-01-15 12:06:55