
CREATE TABLE `kpim_dim_rule_type` (
  `id` int(11) NOT NULL COMMENT '唯一标识',
  `type` varchar(10) COLLATE utf8_bin DEFAULT NULL COMMENT '规则类型：文本，数字，时间',
  `format` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '规则格式：文本无格式，数字为保留小数位数，时间为时间格式',
  `type_desc` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '规则类型描述',
  `kpi_type` int(11) DEFAULT NULL COMMENT 'KPI类型，对应KPI类型维表',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='规则类型维表';

insert  into `kpim_dim_rule_type`(`id`,`type`,`format`,`type_desc`,`kpi_type`) values (1,'text','文本','文本',1),(2,'number','0','数字(整数)',1),(3,'number','1','数字(保留1位小数)',1),(4,'number','2','数字(保留2位小数)',1),(5,'number','3','数字(保留3位小数)',1),(6,'number','4','数字(保留4位小数)',1),(7,'time','yyyy-MM-dd','时间(yyyy-MM-dd)',1),(8,'time','yyyy-MM-dd HH:mm:ss','时间(yyyy-MM-dd HH:mm:ss)',1),(9,'time','yyyyMMdd','时间(yyyyMMdd)',1),(10,'time','yyyy/MM/dd','时间(yyyy/MM/dd)',1),(11,'number','0','数字(整数)',2),(12,'number','1','数字(保留1位小数)',2),(13,'number','2','数字(保留2位小数)',2),(14,'number','3','数字(保留3位小数)',2),(15,'number','4','数字(保留4位小数)',2),(16,'text','文本','文本',3);


CREATE TABLE `kpim_dim_sign` (
  `id` int(11) NOT NULL COMMENT '唯一标识',
  `sign` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '符号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='符号维表';

insert  into `kpim_dim_sign`(`id`,`sign`) values (1,'+'),(2,'-'),(3,'*'),(4,'/'),(5,'('),(6,')');


CREATE TABLE `kpim_dim_type` (
  `id` int(11) NOT NULL COMMENT '唯一标识',
  `name` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '类型名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='配置类型维表';

insert  into `kpim_dim_type`(`id`,`name`) values (1,'定义'),(2,'计算'),(3,'输入');


CREATE TABLE `kpim_info_config` (
  `id` varchar(36) NOT NULL COMMENT '唯一标识',
  `name` varchar(30) DEFAULT NULL COMMENT 'KPI名称',
  `type` int(11) DEFAULT NULL COMMENT 'KPI配置类型，参考类型维表',
  `rule_type_id` int(11) DEFAULT NULL COMMENT '规则类型ID，对应规则类型维表',
  `rule` varchar(255) DEFAULT NULL COMMENT '规则内容',
  `kpi_code` varchar(10) DEFAULT NULL COMMENT 'kpi_code',
  `unit` varchar(20) DEFAULT NULL COMMENT '单位',
  `description` varchar(500) DEFAULT NULL COMMENT 'KPI描述',
  `enable_status` int(11) DEFAULT NULL COMMENT '启用状态：0停用 1启用',
  `edit_status` int(11) DEFAULT NULL COMMENT '编辑状态：0不可编辑 1可编辑',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改人ID',
  `relationship` blob COMMENT '关联关系JSON',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='KPI配置表';


CREATE TABLE `kpim_info_topic` (
  `id` varchar(36) COLLATE utf8_bin NOT NULL COMMENT '主题标识ID',
  `topic_code` varchar(30) COLLATE utf8_bin NOT NULL COMMENT '主题编码',
  `name` varchar(30) COLLATE utf8_bin NOT NULL COMMENT '主题名称',
  `description` varchar(500) COLLATE utf8_bin DEFAULT NULL COMMENT '主题描述',
  `level` int(11) NOT NULL COMMENT '层级,从1开始',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `update_user_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT '修改人ID',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `topic_code` (`topic_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='KPI主题表';


CREATE TABLE `kpim_rel_kpi_column` (
  `kpi_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT 'KPI配置ID',
  `column_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT '元数据字段ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='KPI配置与元数据字段关系表';


CREATE TABLE `kpim_rel_kpi_topic` (
  `kpi_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT 'KPI配置表ID',
  `topic_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT '主题ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='KPI主题关系表';


CREATE TABLE `kpim_rel_kpi_user` (
  `kpi_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT 'KPI配置表ID',
  `user_id` varchar(36) COLLATE utf8_bin DEFAULT NULL COMMENT '可见用户ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='KPI用户关系表';



