Files
xinghe-codegen/doc/sql.md
2026-01-22 11:06:37 +08:00

9.0 KiB
Raw Permalink Blame History

/* ---------------------------------------------------- */
/*  Generated by Enterprise Architect Version 10.10 		*/
/*  Created On : 22-1月-2026 10:57:00 				*/
/*  DBMS       : PostgreSQL 						*/
/* ---------------------------------------------------- */

/* Drop Sequences for Autonumber Columns */

 

DROP SEQUENCE IF EXISTS cg_template_id_seq
;

/* Drop Tables */

DROP TABLE IF EXISTS cg_fun_item CASCADE
;

DROP TABLE IF EXISTS cg_fun_module CASCADE
;

DROP TABLE IF EXISTS cg_fun_operation CASCADE
;

DROP TABLE IF EXISTS cg_menu CASCADE
;

DROP TABLE IF EXISTS cg_role CASCADE
;

DROP TABLE IF EXISTS cg_role_fun CASCADE
;

DROP TABLE IF EXISTS cg_template CASCADE
;

/* Create Tables */

CREATE TABLE cg_fun_item
(
	id bigint NOT NULL,	-- id
	module_id bigint NOT NULL,	-- 模块ID
	item_id bigint NOT NULL,	-- 功能ID
	item_name varchar(50) NOT NULL,	-- 功能名称
	item_code varchar(64) NOT NULL,	-- 功能编码
	is_tenant boolean NOT NULL   DEFAULT true,	-- 是否租户
	describe varchar(250) NULL,	-- 说明
	sort_order smallint NOT NULL   DEFAULT 0	-- 排序
)
;

CREATE TABLE cg_fun_module
(
	id bigint NOT NULL,	-- id
	module_code varchar(16) NOT NULL,	-- 模块编码
	module_name varchar(8) NOT NULL,	-- 模块名称
	package_name varchar(250) NOT NULL,	-- 包名称
	api_package_name varchar(250) NOT NULL,	-- 参数包名
	sort_order smallint NOT NULL   DEFAULT 0,	-- 排序
	describe varchar(250) NULL	-- 描述
)
;

CREATE TABLE cg_fun_operation
(
	id bigint NOT NULL,	-- id
	module_id bigint NOT NULL,	-- 模块ID
	item_id bigint NOT NULL,	-- 功能ID(表主键ID)
	is_green_light boolean NOT NULL   DEFAULT false,	-- 直接放行
	operation_id bigint NOT NULL,	-- 操作ID
	operation_code varchar(32) NULL,	-- 操作编码
	fun_name varchar(16) NOT NULL,	-- 操作名称
	fun_type smallint NOT NULL,	-- 操作类型>>查>>改>>删>>增
	request_type smallint NOT NULL,	-- 请求类型
	is_req_params boolean NOT NULL   DEFAULT true,	-- 是否需要请求参数
	is_res_params boolean NOT NULL   DEFAULT true,	-- 是否需要响应参数
	is_page boolean NOT NULL   DEFAULT true,	-- 是否分页
	path_params varchar(16) NULL,	-- 路径参数与请求参数true互斥
	usable_config json NOT NULL   DEFAULT '[]',	-- 可配置数据类型json[]
	field_config json NOT NULL   DEFAULT '[]',	-- 可配置字段
	sort_order smallint NOT NULL   DEFAULT 0,	-- 排序
	describe varchar(250) NULL	-- 说明说明
)
;

CREATE TABLE cg_menu
(
	id bigint NOT NULL,	-- 主键ID
	client_type smallint NOT NULL,	-- 客户端类型0 PC端1 小程序端2 H5端
	menu_name varchar(32) NOT NULL,	-- 菜单名称
	parent_id bigint NOT NULL   DEFAULT 0,	-- 父菜单ID
	fun_id bigint NULL,	-- 操作ID/来自操作表
	menu_type smallint NOT NULL   DEFAULT 0,	-- 0菜单1按钮
	path varchar(64) NULL,	-- 路由路径
	page_path varchar(64) NULL,
	icon varchar(64) NULL,	-- 菜单图标
	is_tenant boolean NOT NULL   DEFAULT true,	-- 是否租户
	is_hide boolean NOT NULL   DEFAULT false,	-- 是否隐藏
	sort_order smallint NOT NULL   DEFAULT 0	-- 排序
)
;

CREATE TABLE cg_role
(
	id bigint NOT NULL,	-- 主键ID
	role_name varchar(32) NOT NULL,	-- 角色名称
	role_type smallint NOT NULL	-- 角色类型 0平台 1套餐
)
;

CREATE TABLE cg_role_fun
(
	id bigint NOT NULL,	-- 主键ID
	role_id bigint NOT NULL,	-- 角色ID
	fun_id bigint NOT NULL,	-- 操作ID
	data_scope smallint NOT NULL   DEFAULT 0,	-- 数据权限默认:0无
	assign_data_scope json NOT NULL   DEFAULT '[]',	-- 指定的数据权限范围
	exclude_field json NOT NULL   DEFAULT '[]',	-- 排除的字段
	client_type smallserial NOT NULL	-- 客户端类型0 PC端1 小程序端2 H5端
)
;

CREATE TABLE cg_template
(
	id bigint NOT NULL   DEFAULT NEXTVAL(('"cg_template_id_seq"'::text)::regclass),	-- 主键ID
	is_use boolean NOT NULL   DEFAULT false,	-- 是否使用
	template_name varchar(32) NOT NULL,	-- 模板名称
	template_type smallint NOT NULL,	-- 模板类型
	content text NOT NULL	-- 正文
)
;

/* Create Primary Keys, Indexes, Uniques, Checks */

ALTER TABLE cg_fun_item ADD CONSTRAINT "PK_cg_fun_item"
	PRIMARY KEY (id)
;

ALTER TABLE cg_fun_item 
  ADD CONSTRAINT u_module_item_code UNIQUE (module_id,item_id,item_code)
;

ALTER TABLE cg_fun_item 
  ADD CONSTRAINT u_module_item_id UNIQUE (module_id,item_id)
;

ALTER TABLE cg_fun_module ADD CONSTRAINT "PK_cg_fun_module"
	PRIMARY KEY (id)
;

ALTER TABLE cg_fun_operation ADD CONSTRAINT "PK_cg_fun_operation"
	PRIMARY KEY (id)
;

ALTER TABLE cg_fun_operation 
  ADD CONSTRAINT u_module_item_opration UNIQUE (module_id,item_id,operation_code)
;

ALTER TABLE cg_fun_operation 
  ADD CONSTRAINT u_module_item_operation_id UNIQUE (module_id,item_id,operation_id)
;

ALTER TABLE cg_menu ADD CONSTRAINT "PK_cg_menu"
	PRIMARY KEY (id)
;

ALTER TABLE cg_role ADD CONSTRAINT "PK_cg_role"
	PRIMARY KEY (id)
;

ALTER TABLE cg_role_fun ADD CONSTRAINT "PK_cg_role_fun"
	PRIMARY KEY (id)
;

ALTER TABLE cg_template ADD CONSTRAINT "PK_cg_template"
	PRIMARY KEY (id)
;

/* Create Table Comments, Sequences for Autonumber Columns */

COMMENT ON TABLE cg_fun_item
	IS '功能项配置'
;

COMMENT ON COLUMN cg_fun_item.id
	IS 'id'
;

COMMENT ON COLUMN cg_fun_item.module_id
	IS '模块ID'
;

COMMENT ON COLUMN cg_fun_item.item_id
	IS '功能ID'
;

COMMENT ON COLUMN cg_fun_item.item_name
	IS '功能名称'
;

COMMENT ON COLUMN cg_fun_item.item_code
	IS '功能编码'
;

COMMENT ON COLUMN cg_fun_item.is_tenant
	IS '是否租户'
;

COMMENT ON COLUMN cg_fun_item.describe
	IS '说明'
;

COMMENT ON COLUMN cg_fun_item.sort_order
	IS '排序'
;

COMMENT ON TABLE cg_fun_module
	IS '模块配置'
;

COMMENT ON COLUMN cg_fun_module.id
	IS 'id'
;

COMMENT ON COLUMN cg_fun_module.module_code
	IS '模块编码'
;

COMMENT ON COLUMN cg_fun_module.module_name
	IS '模块名称'
;

COMMENT ON COLUMN cg_fun_module.package_name
	IS '包名称'
;

COMMENT ON COLUMN cg_fun_module.api_package_name
	IS '参数包名'
;

COMMENT ON COLUMN cg_fun_module.sort_order
	IS '排序'
;

COMMENT ON COLUMN cg_fun_module.describe
	IS '描述'
;

COMMENT ON TABLE cg_fun_operation
	IS '操作配置'
;

COMMENT ON COLUMN cg_fun_operation.id
	IS 'id'
;

COMMENT ON COLUMN cg_fun_operation.module_id
	IS '模块ID'
;

COMMENT ON COLUMN cg_fun_operation.item_id
	IS '功能ID(表主键ID)'
;

COMMENT ON COLUMN cg_fun_operation.is_green_light
	IS '直接放行'
;

COMMENT ON COLUMN cg_fun_operation.operation_id
	IS '操作ID'
;

COMMENT ON COLUMN cg_fun_operation.operation_code
	IS '操作编码'
;

COMMENT ON COLUMN cg_fun_operation.fun_name
	IS '操作名称'
;

COMMENT ON COLUMN cg_fun_operation.fun_type
	IS '操作类型>>查>>改>>删>>增'
;

COMMENT ON COLUMN cg_fun_operation.request_type
	IS '请求类型'
;

COMMENT ON COLUMN cg_fun_operation.is_req_params
	IS '是否需要请求参数'
;

COMMENT ON COLUMN cg_fun_operation.is_res_params
	IS '是否需要响应参数'
;

COMMENT ON COLUMN cg_fun_operation.is_page
	IS '是否分页'
;

COMMENT ON COLUMN cg_fun_operation.path_params
	IS '路径参数与请求参数true互斥'
;

COMMENT ON COLUMN cg_fun_operation.usable_config
	IS '可配置数据类型json[]'
;

COMMENT ON COLUMN cg_fun_operation.field_config
	IS '可配置字段'
;

COMMENT ON COLUMN cg_fun_operation.sort_order
	IS '排序'
;

COMMENT ON COLUMN cg_fun_operation.describe
	IS '说明说明'
;

COMMENT ON TABLE cg_menu
	IS '菜单'
;

COMMENT ON COLUMN cg_menu.id
	IS '主键ID'
;

COMMENT ON COLUMN cg_menu.client_type
	IS '客户端类型0 PC端1 小程序端2 H5端'
;

COMMENT ON COLUMN cg_menu.menu_name
	IS '菜单名称'
;

COMMENT ON COLUMN cg_menu.parent_id
	IS '父菜单ID'
;

COMMENT ON COLUMN cg_menu.fun_id
	IS '操作ID/来自操作表'
;

COMMENT ON COLUMN cg_menu.menu_type
	IS '0菜单1按钮'
;

COMMENT ON COLUMN cg_menu.path
	IS '路由路径'
;

COMMENT ON COLUMN cg_menu.icon
	IS '菜单图标'
;

COMMENT ON COLUMN cg_menu.is_tenant
	IS '是否租户'
;

COMMENT ON COLUMN cg_menu.is_hide
	IS '是否隐藏'
;

COMMENT ON COLUMN cg_menu.sort_order
	IS '排序'
;

COMMENT ON TABLE cg_role
	IS '角色表'
;

COMMENT ON COLUMN cg_role.id
	IS '主键ID'
;

COMMENT ON COLUMN cg_role.role_name
	IS '角色名称'
;

COMMENT ON COLUMN cg_role.role_type
	IS '角色类型 0平台 1套餐'
;

COMMENT ON TABLE cg_role_fun
	IS '角色权限表'
;

COMMENT ON COLUMN cg_role_fun.id
	IS '主键ID'
;

COMMENT ON COLUMN cg_role_fun.role_id
	IS '角色ID'
;

COMMENT ON COLUMN cg_role_fun.fun_id
	IS '操作ID'
;

COMMENT ON COLUMN cg_role_fun.data_scope
	IS '数据权限默认:0无'
;

COMMENT ON COLUMN cg_role_fun.assign_data_scope
	IS '指定的数据权限范围'
;

COMMENT ON COLUMN cg_role_fun.exclude_field
	IS '排除的字段'
;

COMMENT ON COLUMN cg_role_fun.client_type
	IS '客户端类型0 PC端1 小程序端2 H5端'
;

 

COMMENT ON COLUMN cg_template.id
	IS '主键ID'
;

COMMENT ON COLUMN cg_template.is_use
	IS '是否使用'
;

COMMENT ON COLUMN cg_template.template_name
	IS '模板名称'
;

COMMENT ON COLUMN cg_template.template_type
	IS '模板类型'
;

COMMENT ON COLUMN cg_template.content
	IS '正文'
;

CREATE SEQUENCE cg_template_id_seq INCREMENT 1 START 1
;