• 跨境桥

    扫面微信二维码,及时联系我们

电子商务产品属性(标签)功能数据库的设计

摘要:职位:产品王晓特,程序员晓克

电子商务产品属性(标签)功能数据库的设计

职位:产品王晓特,程序员晓克

小T:小C,我有工作。我们想建立一个网上题库系统。教师可以寻找问题来备课。

看着简单的需求稿,小c心想,我一分钟上下百万,甚至让我做这样一个简单的需求。建立一个问题清单并不是问题的结束。

小C:主题数据来自何处,包含哪些属性?

小t:我们从A公司购买了***期问题数据,问题包括文本、选项、答案、问题类型和难度。

小C:嗯,我要建立一个问题表,包括这五个属性。问题的类型和难点是什么?

小T:有五种类型的问题:单选题、多选题、判断题、填空题和答案。有三种困难,简单的,一般的和困难的。用户可以根据问题类型或难度进行选择。

小C拍了一下:好的,手表是设计好的

小C:根据正文和选项的模糊匹配进行搜索,然后过滤,让前端输入type=1或hardness=3来过滤问题的类型和难度

小T:哇,很可靠。我们上网吧。

小T:小C,我们的题库系统已经投放市场,很多用户反映题量不够。近,我们与B公司建立了合作关系,希望将B公司的题库集成到我们的系统中。数据的结构与a公司的结构非常相似。你可以看到它需要多长时间。

小c心想,恐怕这个产品不会出问题,只是个问题搬运工。

小C:只是指导数据。把对接的接口文件发给我就行了。

T: 好的,我稍后把文件寄给你。

得到B公司的问题界面,问题的总体结构保持不变,但问题类型和难度的分类比a公司略多,有单选题、多选题、分析题、一般分解题、应用分解题。这些问题是简单的、一般的、困难的和极其困难的。

小c心想:我去,以哪家公司的科目分类为标准。所以我发现了一点

小C:如果把数据整合起来,能不能把B公司的分析题、一般分解题、应用分解题变成我们的解决题,这些问题非常难不做,都变得很难。因为现在没有定义标准,所以我不擅长集成数据。

小T:好吧,先照你说的做。

此后,小t又找到两家公司合作,让小C整合数据。而小t认为,一个公司的方法(配置法、消去法、排除法)和能力(推理能力、分析能力、计算能力)数据也是非常重要的维度,希望能够得到补充。

小c坏了。我每分钟上下上百万次,来找我指导数据。每次,我们都需要看看如何整合数据的分类值。经常添加字段。现在,要访问这两家公司的题库数据,我们需要将表修改为

现在题库有300W的数据,未来还会继续增加。如果频繁更改表,则会直接锁定联机表

如果我想看看哪些值应该映射到我们为每一个类别定义的值,我肯定以后我受不了了,因为我们没有统一的标准。。。

小c意识到自己跳进了一个大洞。原来这件事并不像他一开始想的那么简单。

经过仔细考虑,小C得出结论:

这个行业没有一套标准,所以有必要在变化点上扩大

不同公司主题的维度数据不同(例如,公司有两个维度:能力和方法)

不同的公司在同一维度上有不同的数据值(例如,B公司的问题类型不同于a公司的问题类型)

创建专门用于标签的表。一个标签分类下有多个标签值

一个练习有多个标签属性

执行查询时,首先找出T question tag表中设置的标记值ID。

以下JSON是在标记与group group标记聚合后获得的

筛选时,传入标记键(困难)、标记值(1)以获取标记值\u id

当一个数据表将来可能有大量的数据时,不允许由于需求的变化而频繁增加表的字段。考虑增加中间表以扩展

通常,当实体数据信息不确定时,也可以使用NoSQL进行检索。例如,如果设计了以下文档,则可以使用NoSQL的数组查询功能检索与标签对应的实体。

这种设计也可以应用到电子商务中,如商品的分类和选择

标记只能用于数量有限的类别,例如文件大小和价格,这些类别不是固定属性。

不需要对标签字段进行排序,例如按特定类别排序。由于标记位置是一个有限的分类,排序没有意义,标记只能用于筛选。如果需要排序,建议通过计算标签和其他属性来计算分数字段。