57 lines
1.3 KiB
Plaintext
57 lines
1.3 KiB
Plaintext
/**
|
|
* 数据库对象模型(1.5.1)。
|
|
*
|
|
* 与引擎无关的内部表示:引擎驱动把各自的元数据转换为 DbObject 列表,
|
|
* 上层(对象树、搜索、DDL 生成)只依赖本模型。
|
|
*/
|
|
export enum ObjectType {
|
|
SCHEMA = 0,
|
|
TABLE = 1,
|
|
VIEW = 2,
|
|
INDEX = 3,
|
|
PROCEDURE = 4,
|
|
FUNCTION = 5,
|
|
TRIGGER = 6,
|
|
SEQUENCE = 7,
|
|
TYPE = 8,
|
|
SYNONYM = 9
|
|
}
|
|
|
|
export interface DbObject {
|
|
/** 全库唯一 id,建议用 schema + type + name 组合。 */
|
|
id: string;
|
|
name: string;
|
|
type: ObjectType;
|
|
schema: string;
|
|
/** 父对象 id;根对象为空字符串。 */
|
|
parentId: string;
|
|
}
|
|
|
|
/** 对象类型显示名。 */
|
|
export function objectTypeLabel(type: ObjectType): string {
|
|
switch (type) {
|
|
case ObjectType.SCHEMA:
|
|
return '模式';
|
|
case ObjectType.TABLE:
|
|
return '表';
|
|
case ObjectType.VIEW:
|
|
return '视图';
|
|
case ObjectType.INDEX:
|
|
return '索引';
|
|
case ObjectType.PROCEDURE:
|
|
return '存储过程';
|
|
case ObjectType.FUNCTION:
|
|
return '函数';
|
|
case ObjectType.TRIGGER:
|
|
return '触发器';
|
|
case ObjectType.SEQUENCE:
|
|
return '序列';
|
|
case ObjectType.TYPE:
|
|
return '类型';
|
|
case ObjectType.SYNONYM:
|
|
return '同义词';
|
|
default:
|
|
return '未知';
|
|
}
|
|
}
|