Skip to main content

modelQA

建模Q&A

Q:系统支持哪些建模方式?

目前本系统支持以下下建模模型

  • 三范式
  • 雪花模型/星型模型
  • 大宽表模型(不建议,问答效果非常死板且不方便一句话涉及多张事实表问答)

Q: 为什么要用三范式而不建议大宽表?

本系统进行建模的目的,是为了让系统真正“了解”业务。 如何让一个计算机系统了解人类的业务概念呢?总的来说,至少需要让系统知道散落在多张表里面的某一个东西,其实是一个概念。用AI的术语来说,是需要把同样的概念投射到同一个高维空间的向量中。主流AI通过训练来进行高维投影,而本系统通过实施人员的配置来实现高维投影。此做法的优劣不在本文档讨论范围之中。

我们以具体的例子来说明,假设有两张事件表,表A和表B,分别有个地理位置相关的字段,建模方式1的表结构如下:

建模方式1

事件A
日期所属地区xx指标
2024-01-01上海市100
2024-01-01北京市100
事件B
日期xx指标
2024-01-01上海100
2024-01-01北京100

如果所属地区和省字段均为分类类型,则系统不认为两个上海是同一个概念。而会认为是两个同名但不同的概念。 正确的建模方式应该为:

地理位置实体
id名称
001上海市
002北京市
事件A
日期所属地区(实体类型)xx指标
2024-01-01001100
2024-01-01002100
事件B
日期省(实体类型)xx指标
2024-01-01001100
2024-01-01002100

注:以上地理位置实体仅为说明问题,真实的地理位置远比此建模方式复杂。具体情况视频教程之地理位置部分。

Q: 事件中的分类一定要单独做一个实体表出来吗?我直接在事件表中用分类类型不行吗?

事件中的分类类型,有一个隐含的业务概念,即该分类的概念无法脱离于该事件而独立存在,属于必须依赖事件的存在而存在。需要按照实际情况选择使用分类还是实体。

Q: 实体和实体之间具有多对多的关系如何建模?

如果实体和实体之间具有多对多的关系,那么需要在事件表中同时记录该两个实体的数据。

Q: 建模的时候普通模式和专家模式什么区别?

普通模式比较直接明了,功能单一;专家模式代码类型的建模,需要有一定的基础,功能也更加丰富,能实现普通模式不具备的功能,如某个字段的正则匹配等,建模时通常需要两者结合使用