My App

实体与接口字段说明

dicts、fields、subjects、composite-indexes、subject-schemas 各模块实体与 DTO 的字段含义与作用

实体与接口字段说明

本文档描述 dictsfieldssubjectscomposite-indexessubject-schemas 各模块中实体与 DTO 的字段含义与作用。


1. Dicts(字典)

字典为树形结构:一个文档表示一个节点。根节点(parentId 为空)表示「字典类型」(如 statusfieldType);子节点表示该类型下的选项。Field 的 refType=dict 时,refId 指向字典根节点 _id,选项为该根及其子节点。

字段类型必填说明
codestring节点标识。根节点即字典类型(如 statusfieldTyperefType),子节点即选项的 value。
namestring显示名称。根为类型名(如「状态」),子节点为选项的 label(如「启用」「禁用」)。
descriptionstring描述说明。
sortnumber排序值,越小越靠前,默认 0。
parentIdObjectId (ref: Dict)父节点 _id,空或不存在表示根节点。

虚拟字段

虚拟字段说明
parentIdValue通过 parentId 关联的父 Dict 文档。

集合名dicts


2. Fields(字段)

字段描述「主体(Subject)」下的列定义,包括类型、是否必填、索引与引用配置。fieldTypeIdrefTypeId 为字典项 _id(来自字典 fieldType / refType)。

字段类型必填说明
subjectIdObjectId (ref: Subject)所属主体(表)。
namestring字段名称(界面展示)。
codestring字段英文标识,对应动态表文档中的键名。
descriptionstring字段描述、占位提示等。
sortnumber表单内展示顺序,越小越靠前,默认 0。
fieldTypeIdObjectId (ref: Dict)字段类型,为字典 fieldType 下某一项的 _id(如 string、number、select、boolean、date 等)。
refTypeIdObjectId (ref: Dict)选项来源类型,为字典 refType 下项的 _id(dict 或 subject)。仅当 fieldType 为 select 时有效。
refIdObjectId选项来源 ID:字典根 _id 或 Subject _id。仅 fieldType=select 时有效。
refFieldIdObjectId (ref: Field)仅 refType=subject 时有效:用该 Subject 的哪个字段作为选项展示(如用分类的 name 显示)。
requiredboolean是否必填,默认 false。
index0 / 1 / -1单字段索引方向:0 无索引,1 升序,-1 降序(B-tree,用于排序/查询),默认 0。
uniqueboolean是否参与唯一约束(单字段或复合索引中的一环),默认 false。
textboolean是否参与该主体上的全文索引($text 检索),默认 false。
parentIdObjectId (ref: Field)父级字段 _id;指定后当前字段为该父字段的嵌套字段,subjectId 继承自父字段。

虚拟字段

虚拟字段说明
fieldType通过 fieldTypeId 关联的 Dict(字段类型)。
refType通过 refTypeId 关联的 Dict(引用类型)。
subject通过 subjectId 关联的 Subject。
refSubject通过 refId 关联的 Subject(refType=subject 时)。
refDict通过 refId 关联的 Dict(refType=dict 时)。
refField通过 refFieldId 关联的 Field(选项展示字段)。
parent通过 parentId 关联的父 Field。

集合名fields


3. Subjects(主体/表)

Subject 表示一张「逻辑表」的元数据,对应动态集合的命名与展示。实际列定义在 Fields 中,复合索引可在 Subject 上配置或存储在 composite_indexes 集合。

字段类型必填说明
namestring主体中文名称(界面显示)。
codestring主体唯一英文标识(代码、集合名等引用),如 devicecategory
sortnumber排序值,列表展示时使用。
descriptionstring描述信息。

集合名:默认由 Mongoose 生成(subjects)。
索引namecode 各有唯一索引;(name, code) 复合唯一索引。


4. Composite-indexes(复合索引)

复合索引属于某一 Subject,由 2~10 个字段组成,可配置唯一、稀疏、后台构建、TTL 等。字段通过 Field._id(fieldId)引用。

4.1 CompositeIndex 实体

字段类型必填说明
subjectIdObjectId (ref: Subject)所属主体(Subject)。
namestring索引名称,最大 128 字符;留空则由 MongoDB 自动生成。
fieldsCompositeIndexField[]索引字段列表,至少 2 个、最多 10 个元素。
descriptionstring索引描述,最大 256 字符。
uniqueboolean是否唯一索引(索引键不重复),默认 false。
sparseboolean是否稀疏索引(仅包含含该索引键的文档),默认 false。
backgroundboolean是否后台创建索引,默认 true。
expireAfterSecondsnumberTTL:文档在指定秒数后自动删除,可选。

4.2 CompositeIndexField(复合索引中的一项)

字段类型必填说明
fieldIdObjectId (ref: Field)参与索引的字段,对应 Field 的 _id
indexDirection1 / -1排序方向:1 升序,-1 降序,默认 1。

集合名:由 Mongoose 默认(compositeindexes)。


5. Subject-schemas(主体表结构接口)

Subject-schemas 提供「整张表」的只读视图:主体信息 + 字段列表(含类型、引用等关联)+ 单字段索引汇总 + 复合索引(含字段名解析)。用于管理端展示表结构、表单生成、索引一览等。

5.1 SubjectSchemaDto(单张表完整结构)

字段类型说明
_idObjectId主体 ID。
namestring主体名称。
codestring主体标识。
sortnumber排序值。
descriptionstring描述。
createdAtDate创建时间。
updatedAtDate更新时间。
fieldsFieldSchemaItem[]该主体下所有字段(含 fieldType、refType、ref、refField 等关联)。
singleFieldIndexesSingleFieldIndexItem[]由各 Field 的 index/unique/text 汇总得到的单字段索引列表。
compositeIndexesCompositeIndexItem[]来自 composite_indexes 集合的复合索引,且每条索引的字段已解析为 code/name。

5.2 FieldSchemaItem(表结构中的字段项)

在 Field 实体字段基础上,增加以下关联(由聚合查询填充):

字段类型说明
fieldType{ _id, code, name }字段类型字典项。
refType{ _id, code, name }引用类型字典项(dict/subject)。
ref{ _id, code, name }选项来源:字典或 Subject。
refField{ _id, name, code }选项展示用字段(refType=subject 时)。

其余与 Field 实体一致(如 subjectId、name、code、fieldTypeId、refTypeId、refId、refFieldId、required、index、unique、text、parentId、sort、description 等)。

5.3 SingleFieldIndexItem(单字段索引项)

字段类型说明
fieldIdObjectId字段 ID。
fieldCodestring字段英文标识。
fieldNamestring字段名称。
direction1 / -1索引方向(1 升序,-1 降序;全文索引视为 1)。
uniqueboolean是否唯一。
textboolean是否参与全文索引。

5.4 CompositeIndexFieldItem(复合索引中的字段项,含展示信息)

字段类型说明
fieldIdObjectId字段 ID。
fieldCodestring字段英文标识(解析自 Field)。
fieldNamestring字段名称(解析自 Field)。
indexDirection1 / -1该字段在复合索引中的排序方向。

5.5 CompositeIndexItem(表结构中的复合索引项)

字段类型说明
_idObjectId复合索引文档 ID。
namestring索引名称。
fieldsCompositeIndexFieldItem[]参与索引的字段列表(含 code/name 解析)。
descriptionstring描述。
uniqueboolean是否唯一索引。
sparseboolean是否稀疏索引。
backgroundboolean是否后台创建。
expireAfterSecondsnumberTTL 秒数(若有)。

关系小结

  • Subject:一张逻辑表;其 Fields 定义列与单字段索引(index/unique/text)。
  • CompositeIndex:属于某 Subject,由多个 Field(通过 fieldId)组成复合索引。
  • Dict:树形字典,根为类型(如 status、fieldType、refType),子为选项;Field 的 fieldTypeId/refTypeId 指向 Dict,refId 在 select 类型下指向 Dict 根或 Subject。
  • Subject-schemas:按 Subject 聚合 Field + Dict + CompositeIndex,输出整张表的字段与索引信息,供前端或下游使用。

On this page