29 lines
2.3 KiB
JSON
29 lines
2.3 KiB
JSON
{
|
||
"summary": "PBL 世界关联表(薄扩展):把基表 world 绑定到 PBL 租户/班级/团队,不改 world 基表结构(Q-OPEN-3)",
|
||
"tblname": "pbl_world_ref",
|
||
"fields": [
|
||
{"name": "id", "type": "bigint", "primary": true, "auto": true, "comment": "主键"},
|
||
{"name": "tenant_id", "type": "varchar(64)", "null": false, "comment": "PBL 租户ID(强制打头,所有查询必带)"},
|
||
{"name": "world_id", "type": "bigint", "null": false, "comment": "基表 world.id(只读引用,不建外键以免锁基表)"},
|
||
{"name": "class_id", "type": "bigint", "null": false, "default": 0, "comment": "归属班级 pbl_class.id,0=未指定"},
|
||
{"name": "team_id", "type": "bigint", "null": false, "default": 0, "comment": "归属团队 pbl_team.id,0=未指定"},
|
||
{"name": "visibility", "type": "varchar(16)", "null": false, "default": "team", "comment": "可见性 team/class/tenant"},
|
||
{"name": "role_code", "type": "varchar(64)", "null": false, "default": "", "comment": "角色绑定(teacher/student/observer 或蓝图角色码),空=通用"},
|
||
{"name": "source", "type": "varchar(32)", "null": false, "default": "manual", "comment": "来源 manual/compiler/import"},
|
||
{"name": "ext_json", "type": "text", "null": true, "comment": "PBL 侧扩展属性 JSON(不改基表的前提下承载额外字段)"},
|
||
{"name": "created_by", "type": "varchar(64)", "null": true, "comment": "创建人"},
|
||
{"name": "created_at", "type": "datetime", "null": false, "default": "CURRENT_TIMESTAMP", "comment": "创建时间"},
|
||
{"name": "updated_at", "type": "datetime", "null": true, "comment": "更新时间"}
|
||
],
|
||
"indexes": [
|
||
{"name": "uk_pbl_world_ref", "unique": true, "fields": ["tenant_id", "world_id", "team_id", "role_code"], "comment": "幂等唯一键"},
|
||
{"name": "idx_pbl_world_ref_class", "unique": false, "fields": ["tenant_id", "class_id"], "comment": "按班级查"},
|
||
{"name": "idx_pbl_world_ref_team", "unique": false, "fields": ["tenant_id", "team_id"], "comment": "按团队查"},
|
||
{"name": "idx_pbl_world_ref_world", "unique": false, "fields": ["world_id"], "comment": "反查基表归属"}
|
||
],
|
||
"codes": {
|
||
"visibility": {"team": "团队可见", "class": "班级可见", "tenant": "租户可见"},
|
||
"source": {"manual": "人工绑定", "compiler": "Compiler 物化", "import": "批量导入"}
|
||
}
|
||
}
|