-- ============================================================ -- 服务方法管理数据表建表脚本(Oracle) -- 数据来源:服务方法管理数据表.docx -- 注意:原文档中参数表名为 SRCPARAMS,已按最新要求改为 SRCMETHODPARAMS -- ============================================================ -- 1. 服务模块表:记录被扫描 DLL 中的类(AjaxMethod 方法所在的类) CREATE TABLE SRCMD ( MACID CHAR(20) NOT NULL, -- 服务部件ID(程序集名称) MDID FLOAT NOT NULL, -- 服务模块号(类序号) MDNAME CHAR(40) NULL, -- 服务模块名称(类全名) CONSTRAINT PK_SRCMD PRIMARY KEY (MACID, MDID) ); COMMENT ON TABLE SRCMD IS '代码扫描服务模块'; COMMENT ON COLUMN SRCMD.MACID IS '服务部件ID'; COMMENT ON COLUMN SRCMD.MDID IS '服务模块号'; COMMENT ON COLUMN SRCMD.MDNAME IS '服务模块名称'; -- 2. 服务方法表:记录类中标记了 AjaxMethod 的方法 CREATE TABLE SRCMETHOD ( MACID CHAR(20) NOT NULL, -- 服务部件ID MDID FLOAT NOT NULL, -- 服务模块号 METHODNAME CHAR(32) NOT NULL, -- 服务方法名 MODIFIERS VARCHAR2(80) NULL, -- 方法修饰符(例如 public static) AUTHREQUIRED CHAR(1) NULL, -- 是否需要登录才能调用(Y/N) USEHTTPGET CHAR(1) NULL, -- 是否支持 Http GET 调用(Y/N) METHODDESC VARCHAR2(4000) NULL, -- 服务方法功能描述() RETTYPE VARCHAR2(80) NULL, -- 返回值类型(包含命名空间) RETDESC VARCHAR2(1000) NULL, -- 返回值描述() CONSTRAINT PK_SRCMETHOD PRIMARY KEY (MACID, MDID, METHODNAME) ); COMMENT ON TABLE SRCMETHOD IS '代码扫描服务方法'; COMMENT ON COLUMN SRCMETHOD.MACID IS '服务部件ID'; COMMENT ON COLUMN SRCMETHOD.MDID IS '服务模块号'; COMMENT ON COLUMN SRCMETHOD.METHODNAME IS '服务方法名'; COMMENT ON COLUMN SRCMETHOD.MODIFIERS IS '方法修饰符'; COMMENT ON COLUMN SRCMETHOD.AUTHREQUIRED IS '是否需要登录才能调用'; COMMENT ON COLUMN SRCMETHOD.USEHTTPGET IS '是否支持Http GET调用'; COMMENT ON COLUMN SRCMETHOD.METHODDESC IS '方法功能描述'; COMMENT ON COLUMN SRCMETHOD.RETTYPE IS '返回值类型'; COMMENT ON COLUMN SRCMETHOD.RETDESC IS '返回值描述'; -- 3. 服务方法参数表:记录每个方法的参数 CREATE TABLE SRCMETHODPARAMS ( MACID CHAR(20) NOT NULL, -- 服务部件ID MDID FLOAT NOT NULL, -- 服务模块号 METHODNAME CHAR(32) NOT NULL, -- 服务方法名 PARAMXH FLOAT NOT NULL, -- 参数序号 PARAMNAME CHAR(32) NULL, -- 参数名 PARAMTYPE VARCHAR2(80) NULL, -- 参数类型(包含命名空间) PARAMDESC VARCHAR2(1000) NULL, -- 参数描述() CONSTRAINT PK_SRCMETHODPARAMS PRIMARY KEY (MACID, MDID, METHODNAME, PARAMXH) ); COMMENT ON TABLE SRCMETHODPARAMS IS '代码扫描服务方法参数'; COMMENT ON COLUMN SRCMETHODPARAMS.MACID IS '服务部件ID'; COMMENT ON COLUMN SRCMETHODPARAMS.MDID IS '服务模块号'; COMMENT ON COLUMN SRCMETHODPARAMS.METHODNAME IS '服务方法名'; COMMENT ON COLUMN SRCMETHODPARAMS.PARAMXH IS '参数序号'; COMMENT ON COLUMN SRCMETHODPARAMS.PARAMNAME IS '参数名'; COMMENT ON COLUMN SRCMETHODPARAMS.PARAMTYPE IS '参数类型'; COMMENT ON COLUMN SRCMETHODPARAMS.PARAMDESC IS '参数描述'; -- 4. 数据类型表:记录自定义类型(参数/返回值中用到的自定义类) CREATE TABLE SRCTYPE ( TYPEFULLNAME VARCHAR2(80) NOT NULL, -- 类型全称,例如 GThinking.S_XSDD.SOXXData NAMESPACE VARCHAR2(80) NULL, -- 命名空间 TYPENAME VARCHAR2(80) NULL, -- 显示名称,例如 SOXXData TYPEDESC VARCHAR2(1000) NULL, -- 类型描述() CONSTRAINT PK_SRCTYPE PRIMARY KEY (TYPEFULLNAME) ); COMMENT ON TABLE SRCTYPE IS '代码扫描数据类型'; COMMENT ON COLUMN SRCTYPE.TYPEFULLNAME IS '类型全称'; COMMENT ON COLUMN SRCTYPE.NAMESPACE IS '命名空间'; COMMENT ON COLUMN SRCTYPE.TYPENAME IS '显示名称'; COMMENT ON COLUMN SRCTYPE.TYPEDESC IS '类型描述'; -- 5. 数据类型属性表:记录自定义类型的公共属性/字段 CREATE TABLE SRCPROP ( TYPEFULLNAME VARCHAR2(80) NOT NULL, -- 类型全称 PROPNAME CHAR(32) NOT NULL, -- 属性名称 PROPTYPEFULLNAME VARCHAR2(80) NOT NULL, -- 属性类型全称 NAMESPACE VARCHAR2(80) NULL, -- 属性类型命名空间 PROPTYPE VARCHAR2(80) NULL, -- 属性类型显示名称 PROPDESC VARCHAR2(250) NULL, -- 属性描述() CONSTRAINT PK_SRCPROP PRIMARY KEY (TYPEFULLNAME, PROPNAME, PROPTYPEFULLNAME) ); COMMENT ON TABLE SRCPROP IS '代码扫描数据类型属性'; COMMENT ON COLUMN SRCPROP.TYPEFULLNAME IS '类型全称'; COMMENT ON COLUMN SRCPROP.PROPNAME IS '属性名称'; COMMENT ON COLUMN SRCPROP.PROPTYPEFULLNAME IS '属性类型全称'; COMMENT ON COLUMN SRCPROP.NAMESPACE IS '属性类型命名空间'; COMMENT ON COLUMN SRCPROP.PROPTYPE IS '属性类型'; COMMENT ON COLUMN SRCPROP.PROPDESC IS '属性描述'; -- 可选索引:加速按 MACID 查询 CREATE INDEX IDX_SRCMETHOD_MACID ON SRCMETHOD(MACID); CREATE INDEX IDX_SRCMETHODPARAMS_MACID ON SRCMETHODPARAMS(MACID); CREATE INDEX IDX_SRCPROP_TYPEFULLNAME ON SRCPROP(TYPEFULLNAME);