首页 > 京东商城针对不同分类产品,产品属性不一样,这种场景下他们的数据库是如何设计的?

京东商城针对不同分类产品,产品属性不一样,这种场景下他们的数据库是如何设计的?

家居家装 > 家纺 > 床品套件

家居家装 > 家纺 > 凉席

以上两张图片是两个不同的分类,但右侧的一些过滤条件是完全不同的。只有一少部分是共同属性,大部分还是产品特有属性(我分析过他们的url里参数,一些特殊属性全部通过在ext参数里组建而成)。
针对此类的信息,他们是如何保存到数据库中的?

数据库构架设计如何实现的?

对于搜索他们应该直接走的是一个产品搜索引擎,而不是走的数据库的。


其实,“不同分类的商品会有不同的筛选项”,和“他们是如何保存到数据库中的”之间是没有必然关系的。不同分类商品会有不同筛选项,这个其实是运营方面的工作。比如手机这个分类,就应该配操作系统屏幕尺寸这样的筛选项,而对于耳机分类,就会出类似耳机线长度阻尼这些筛选项。只需要对于每个商品,有一个键值对,用以描述这个商品。
至于这些属性在数据库中的形式,用一个var按照规则进行存储即可,另外还有一些ID化方面的事情,也就是存储在每个商品中的属性项和属性值是ID,而显示的是明文。


如过查询和展示都不经过数据库,那么数据库用什么结构就不重要了,你大可以把所有不同的tag和value连在一起,塞到一个blob字段里,反正你也不会把这个字段放在任何SQL语句里做查询条件。

【热门文章】
【热门文章】