西西河

主题:【原创】身为码农,为12306说两句公道话 -- 代码狗

共:💬137 🌺892 🌵3
全看分页树展 · 主题 跟帖
家园 数据模型设计

关于库存数据存储设计,我再提一个方案,不用16个商品也不用136个,只用1个,但是不存储“库存数量”,而是用一个bit vector代表整个路线的存货,查询和购买都只用一次操作。

北京西到深圳北就是一个16位的bit vector,初始状态全部是1。

查询1号站到5号站就是查询:

1111 1111 1111 1111 AND 1111 0000 0000 0000 == 1111 0000 0000 0000

查询只用一次操作,得TRUE

如果这张票卖出去了,那写入也只是一次操作:

1111 1111 1111 1111 - 1111 0000 0000 0000, 得新值0000 1111 1111 1111,写入。

下一次查询比如2号站到6号站:

0000 1111 1111 1111 AND 0111 1000 0000 0000 == 0111 1000 0000 0000 得 FALSE.

读写兼顾,而且数据库维护很容易,没有任何多余重复信息。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河