名词:对象类型、属性、关系
对象类型与属性、派生属性、关系的两端、接口、共享属性与值类型。

本课目标
读完这一课,你将能够
- 用对象类型和属性描述一类业务对象
- 说出关系的两端,分清一对多和多对多
- 说出接口、共享属性和值类型各解决什么问题
对象类型和属性
对象类型(Object Type)是一类业务对象:一个主键、一个标题、若干属性。示例本体里有五个:客户公司、智能体、应用、模型用量、云费用。
属性(Property)有类型。除了文字、整数、小数和日期,还有位置(地图上的一个点)、结构(例如联系人:姓名加邮箱)、列表(例如标签)和时间序列(例如每天的用量)。类型定好了,值在写入时就会被检查。
存下来的属性
客户公司的名称、行业、阶段、座位数、成员数、城市、位置、联系人。
读时计算的属性
「智能体数」沿关系数出来,「累计模型费用」把它全部模型用量的费用加起来。最多沿关系走三步。
关系有两端
关系(Link Type)连接两个对象类型,两端各有一个名字。「公司的智能体」这条关系,从客户公司看叫 agents(智能体),从智能体看叫 customer(所属公司)。有了两端的名字,从哪一头出发都能走过去。
| 一对多 | 多对多 | |
|---|---|---|
| 例子 | 一家客户公司有多个智能体 | 一个应用用多个智能体,一个智能体也接入多个应用 |
| 怎么存 | 智能体身上记着公司 ID(外键) | 每一条连接单独存一条记录 |
| 关系能带属性吗 | 不需要 | 可以,例如接入日期 |
关系是本体的骨架:有了它,「付费客户的全部智能体」这种问题一步就能走到。
接口、共享属性、值类型
接口
几个对象类型共有的形状。模型用量和云费用都「有费用」,都实现 Billable 接口,于是能放在一起按月汇总成本。接口可以继承:Billable 继承了「按月记录」。
共享属性
跨类型复用的属性定义,例如「费用(美元)」「月份」。定义写一次,用它的类型保持一致。
值类型
带约束的类型。「公司 ID」必须以 cell- 开头;「客户阶段」只能是试点、付费、暂停之一;「美元金额」不能小于 0。写入时校验。
要点
- 对象类型 = 主键 + 标题 + 属性;属性有类型,写入时检查。
- 派生属性读时计算,沿关系最多走三步。
- 关系有两端、各有名字;一对多用外键,多对多每条连接单独存。
- 接口让不同对象类型可以一起用;值类型把规则写进类型里。
练一练
给你们的一类业务对象建模
选一类你们每天都在处理的对象:订单、工单或客户。
写出主键、标题和五个属性,每个属性写上类型;再想一个可以读时计算的属性。
写出它和另外两个对象类型的关系,两端各起一个名字,标出一对多还是多对多。
哪个属性的取值有规则?把它写成一个值类型。
小测
选一个答案,马上看解析。
Q1「客户公司的智能体数」最适合做成什么?
能从关系算出来的数,就不要再存一份;派生属性读时计算,永远和实际一致。
Q2一个应用可以用多个智能体,一个智能体也可以接入多个应用。这是?
两边都是「多」,一个外键装不下;多对多的每一条连接单独存,还能带属性,例如接入日期。
Q3要把模型用量和云费用放在一起按月汇总成本,最合适的是?
两类对象各自不同,但都有「月份」和「费用」。实现同一个接口后,就能当成一组来汇总。