我有一个在线购物车,在结帐时用户输入他的邮政编码。
有两种付款方式,货到付款和网上银行。快递服务仅运送到某些区域(由邮政编码标识)。COD 和 Net-Banking 允许的邮政编码列表不同。(列表长度 = COD 约 2500,后者约 10,000)
我应该将这些列表存储在数据库还是平面文件中?
对于数据库,我将使用 查询SELECT
,对于文件,我可以读取数组中的整个(或部分)列表,然后对其进行二进制搜索。
考虑以下几点,哪一个会更快 -
- 现在只有一种快递服务,但将来会有更多,并且有自己的不同列表。所以我需要在多个列表中搜索。
- 主要是读,写会少得多。此外,该列表应该在以后进行自定义。
我会选择数据库,但我不知道它是否会使事情变慢,而且我不想花时间设计数据库,当文件可能更好时。
编辑:
假设有 2 家快递公司 ABC 和 DEF。
对于文件,我将有 4 个文件(例如)ABC_COD.txt、ABC_net.txt、DEF_COD.txt、DEF_net.txt。因此,如果客户选择 COD,我会搜索 ABC_COD,如果没有,我会搜索 DEF_COD,依此类推。好吧,这似乎很昂贵,但它也很容易扩展。
现在考虑数据库,我将有一个表Allowed_zipcodes
,有五列:zipcode(int/varchar(6))、ABC_COD(boolean)、ABC_net(boolean)、DEF_COD(boolean)、DEF_net(boolean)。如果 x 公司为 y 代码提供 cod,则对应列有true
,否则false
。虽然这看起来有利于查找,但添加公司需要更改架构。
请考虑未来的变化和设计。