数据存储设计

来源:互联网 发布:忻州广电网络电视台 编辑:程序博客网 时间:2024/06/05 19:53

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来冗余一份数据,用于搜索

原创粉丝点击