电商项目
一、数据库
1、分库、分表
1)根据几个主要电商天猫、淘宝、京东、亚马逊、1号店进行分库.
分库思想:
先定义1个总库eqis,保存几个电商字典表eb、商品类别表、店铺类别关系表、各个店铺名称表shop、用户管理模块表、查询结果集表。
先对电商进行分库即eqis_tm01、eqis_tb01、eqis_jd01、eqis_ymx01、eqis_yhd01
对于电商里爬虫抓取到的店铺数进行分组,每2000个店铺一个库,例如1-2000店铺存eqis_tm01,2001-4000店铺eqis_tm02
2)根据各个电商的店铺进行分表(每个子库都有一个shopscore)
比如天猫里有个店铺是“天猫化妆品店”,则总库eqis里shop表就存在一条数据id=1,ebId=1(代表天猫),shopname=天猫化妆品店
这张表存在于eqis_tm01里,且表名为1_shop;
比如天猫里有个店铺是“天猫化奶粉店”,则总库eqis里shop表就存在一条数据id=3000,ebId=1(代表天猫),shopname=天猫奶粉店
这张表存在于eqis_tm02里,且表名为3000_shop;
3)shop表也分为5张shop_tm、shop_tb、shop_jd、shop_ymx、shop_yhd
具体功能
根据商品的ebId,定位电商,根据商品的shopId,定位到商品属于哪个库,以及哪个表
1.查看商品历史价格(一般只有综合评分很差的表需要查看这个功能)
商品的唯一性质是商品的URL,
实际做的时候肯定还需要考虑更多的问题,比如数据库的调优,磁盘IO方式,服务器稳定性;方案的可测试性,可量化等等。
导入功能
1.先将各个库创建表,创建完
1、根据商品的店铺选择库和表
如果商品的店铺未能成功爬取到,会记录日志