数据存储设计

1.把原有的横表转化为纵表存储属性,即

产品表:(product_id, product_name, product_class)

产品属性表:(product_id, property_id, property_name, property_value)

2.保持原有横表设计思路,但是弹性字段含义单独元数据表存储

产品表:(product_id, product_name, product_class, prop1, prop2, ... propn)

产品属性含义元数据表:(product_class, prop1_name, prop2_name, ... propn_name)

不管横表还是纵表,都有明显缺陷

所以,不要尝试只用数据库去统一解决这个问题,思路扩散一些:

1.)公共表:提炼商品公共的信息放到数据库,例如:商品id,名称,发布的商家,发布的日期,上架状态

2.)扩展表:将变化的信息放到另外一个表,可以是数据库表,例如电脑商品一个表,服装一个表;也可以将信息放到MongoDB或者ElasticSearch这类文档数据库

3.)搜索组件:扩展表在全文搜索的时候不好实现,因此需要独立的组件负责搜索,可以用ElasticSearch或者solr来冗余一份数据,用于搜索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值