## 数据字典
```[sql]
-- last update:2017-9-21 21:00:26
-- 说明:功能模块所用的表前缀:系统前缀+fm+表名
-- #########################【系统管理】#########################
-- ----------------------------
-- Table structure for `s_system_settings`
-- ----------------------------
DROP TABLE IF EXISTS `s_system_settings`;
CREATE TABLE `s_system_settings` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`inc_type` char(64) NOT NULL DEFAULT '' COMMENT '设置分组',
`name` varchar(64) NOT NULL DEFAULT '' COMMENT '设置的key键名',
`value` text NULL COMMENT '设置的val值',
`desc` varchar(500) NOT NULL DEFAULT '' COMMENT '描述',
PRIMARY KEY (`id`),
KEY `inc_type` (`inc_type`) USING BTREE,
UNIQUE KEY `inc_type_name` (`inc_type`, `name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='系统设置 表';
INSERT INTO `s_system_settings`
(`inc_type`, `name`, `value`, `desc`)
VALUES
('system', 'name', '网站名称', ''),
('system', 'describe', '网站描述', ''),
('system', 'logo', '20170710/2bd5de93459bc46ac86c607ea7898004.jpg', '');
-- ----------------------------
-- Records of s_system_settings
-- ----------------------------
-- ----------------------------
-- Table structure for `s_admin`
-- ----------------------------
DROP TABLE IF EXISTS `s_admin`;
CREATE TABLE `s_admin` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '管理员用户ID',
`nickname` char(16) NOT NULL DEFAULT '' COMMENT '昵称',
`avatar` varchar(500) NOT NULL DEFAULT '' COMMENT '头像',
`password` char(40) NOT NULL DEFAULT '' COMMENT '用户密码',
`salt` char(32) NOT NULL DEFAULT '' COMMENT '用于保护用户密码安全的盐值',
-- 这个用户邮箱和手机是唯一的,但是有的人开始并没有绑定邮箱或手机,所以也不能为空串,不然唯一冲突,所以只能允许为空null了,并且默认为null
`email` char(32) NULL DEFAULT NULL COMMENT '用户邮箱(可用作登录名)',
`mobile` char(15) NULL DEFAULT NULL COMMENT '用户手机(可用作登录名)',
`login` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '登录次数',
`create_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '注册IP',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '注册时间',
`last_login_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录IP',
`last_login_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`) USING BTREE,
UNIQUE KEY `mobile` (`mobile`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='系统管理员 表';
-- ----------------------------
-- Records of s_admin
-- ----------------------------
-- ----------------------------
-- Table structure for `s_salesman`
-- ----------------------------
DROP TABLE IF EXISTS `s_salesman`;
CREATE TABLE `s_salesman` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '管理员用户ID',
`nickname` char(16) NOT NULL DEFAULT '' COMMENT '昵称',
`avatar` varchar(500) NOT NULL DEFAULT '' COMMENT '头像',
`password` char(40) NOT NULL DEFAULT '' COMMENT '用户密码',
`salt` char(32) NOT NULL DEFAULT '' COMMENT '用于保护用户密码安全的盐值',
-- 这个用户邮箱和手机是唯一的,但是有的人开始并没有绑定邮箱或手机,所以也不能为空串,不然唯一冲突,所以只能允许为空null了,并且默认为null
`email` char(32) NULL DEFAULT NULL COMMENT '用户邮箱(可用作登录名)',
`mobile` char(15) NULL DEFAULT NULL COMMENT '用户手机(可用作登录名)',
`login` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '登录次数',
`create_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '注册IP',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '注册时间',
`last_login_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录IP',
`last_login_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态(1-正常,2-业务员离职或者转让其它原因,已失效)',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`) USING BTREE,
UNIQUE KEY `mobile` (`mobile`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='业务员 表';
-- ----------------------------
-- Records of s_salesman
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_salesman`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_salesman`;
CREATE TABLE `s_school_salesman` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校ID',
`salesman_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '业务员ID',
PRIMARY KEY (`id`),
UNIQUE KEY `school_id` (`school_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='业务员-开通学校 关联 表(业务员学校开通记录)';
-- ----------------------------
-- Records of s_school_salesman
-- ----------------------------
-- ----------------------------
-- Table structure for `s_district_education_bureau`
-- ----------------------------
DROP TABLE IF EXISTS `s_district_education_bureau`;
CREATE TABLE `s_district_education_bureau` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '机构名称,黄冈-区教育局',
`logo` varchar(250) NOT NULL DEFAULT '' COMMENT '机构logo',
`country` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '国家' ,
`province` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '省份' ,
`city` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '城市' ,
`district` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '县区' ,
`twon` int(11) unsigned NULL DEFAULT 0 COMMENT '乡镇' ,
`address` varchar(500) NOT NULL DEFAULT '' COMMENT '详细地址',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='区教育局 表';
-- ----------------------------
-- Records of s_district_education_bureau
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_apply`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_apply`;
CREATE TABLE `s_school_apply` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(500) NOT NULL DEFAULT '' COMMENT '学校名称',
`logo` varchar(500) NOT NULL DEFAULT '' COMMENT '学校logo',
`school_id` int(10) unsigned NULL DEFAULT NULL COMMENT '完成后创建的学校ID',
`salesman_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '业务员ID',
`school_scale` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '预估学校规模(学校人数*3)',
`school_type` varchar(250) NOT NULL DEFAULT '' COMMENT '学校类型,多选(1,2):1-幼儿园,2-小学,3-中学,4-高中,5-职校,6-大学',
`education_bureau` varchar(500) NOT NULL DEFAULT '' COMMENT '所属区教育局',
`is_salesman_admin` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '业务员是否成为管理员',
`admin_account` text NULL COMMENT '管理员账号(json最多设置三个学校管理员)',
`docking_people` text NULL COMMENT '学校对接负责人(json最多三个人,负责学校开通对接时联系,姓名,手机号码)',
`corp_info` text NULL COMMENT '申请的企业号信息(json企业号名称,注册信息,机构证书等等)',
`is_branch` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否为分校园,0-不为分校,1-为分校',
`school_brand` text NULL COMMENT '学校品牌信息(json如果为分校,则需要提供学校品牌信息,或者已经创建的品牌ID)',
`school_country` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '国家',
`school_province` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '省份',
`school_city` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '城市',
`school_district` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '县区',
`school_twon` int(11) unsigned NULL DEFAULT 0 COMMENT '乡镇',
`school_address` varchar(500) NOT NULL DEFAULT '' COMMENT '学校详细地址',
`salesman_note` text NULL COMMENT '备注(仅业务员自己可见)',
`complete_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '完成时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态(0-待处理,通过,驳回,完成-表示学校已创建)',
PRIMARY KEY (`id`),
UNIQUE KEY `school_id` (`school_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校申请 表';
-- ----------------------------
-- Records of s_school_apply
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_apply_log`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_apply_log`;
CREATE TABLE `s_school_apply_log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`apply_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '申请ID',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '记录标题',
`content` text NULL COMMENT '内容',
`type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '记录类型(创建,变动,……)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校申请表的日志 表';
-- ----------------------------
-- Records of s_school_apply_log
-- ----------------------------
-- ----------------------------
-- Table structure for `s_study_period`
-- ----------------------------
DROP TABLE IF EXISTS `s_study_period`;
CREATE TABLE `s_study_period` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(500) NOT NULL DEFAULT '' COMMENT '学段名称,幼儿园,小学,中学,高中',
`year` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '年制,3,6,3,3',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='【系统】学校学段 表';
-- ----------------------------
-- Records of s_study_period
-- ----------------------------
-- ----------------------------
-- Table structure for `s_study_grade`
-- ----------------------------
DROP TABLE IF EXISTS `s_study_grade`;
CREATE TABLE `s_study_grade` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`period_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学段ID',
`name` varchar(500) NOT NULL DEFAULT '' COMMENT '年级名称,学前班、小班、大班,一年级 ~ 六年级,初一……',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='【系统】学校年级 表';
-- ----------------------------
-- Records of s_study_grade
-- ----------------------------
-- END ##################################################
-- ############################【系统应用】############################
-- ----------------------------
-- Table structure for `s_app_category`
-- ----------------------------
DROP TABLE IF EXISTS `s_app_category`;
CREATE TABLE `s_app_category` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pid` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '上级ID',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '分类名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='应用分类 表';
-- ----------------------------
-- Records of s_app_category
-- ----------------------------
-- ----------------------------
-- Table structure for `s_app`
-- ----------------------------
DROP TABLE IF EXISTS `s_app`;
CREATE TABLE `s_app` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '应用名称',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '应用标示',
`describe` text NULL COMMENT '应用描述',
`menu` text NULL COMMENT '应用自定义菜单',
`right_node` text NULL COMMENT '应用权限节点',
`edition` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '版次,不同于版本号,用于和s_school_agent同步,如果应用更新后需要学校也同步更新,比如菜单更新了',
`author` varchar(250) NOT NULL DEFAULT '' COMMENT '应用作者',
`author_url` varchar(250) NOT NULL DEFAULT '' COMMENT '应用作者网址',
`version` varchar(50) NOT NULL DEFAULT '' COMMENT '版本号',
`is_builtin` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否为内建应用:0-否,1-是',
`app_type` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '应用类型(1-官方应用,2-第三方应用)',
`dev_type` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '开发者类型,1-企业开发者,2-个人开发者)',
`category` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属分类id',
`keyword` varchar(250) NOT NULL DEFAULT '' COMMENT '关键字',
`is_install` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否安装了:1-已安装,0-待安装',
`switch` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '应用开关:1-开,0-关。应用升级、安装、维护时需要暂时关闭,使其不能访问,否则会出现意外(即使这样也还是不能完全避免极端时候的并发问题,不过还是将故障降到最低概率了)',
`status` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '状态(0-未安装,1-已安装,2-已卸载,3-模块缺失(模块缺失或文件损坏),4-停用)',
`install_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '安装时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间(安装后还可以对应用信息进行修改,除了应用配置信息不可修改外,其它信息可以已更新,比如分类)',
`join_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '加入时间(扫描进来的时间)',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='应用 表(这都是本地应用,是安装在我们的服务器上的,数据也在我们服务器上面。其实还有一种服务商应用,由服务商提供服务的,那种应用直接由服务商提供数据服务,用户直接跟服务商签订合作关系)';
-- ----------------------------
-- Records of s_app
-- ----------------------------
-- ----------------------------
-- Table structure for `s_app_log`
-- ----------------------------
DROP TABLE IF EXISTS `s_app_log`;
CREATE TABLE `s_app_log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`app_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '应用ID',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '日志标题',
`content` text NULL COMMENT '内容',
`type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '日志类型,0-其它,1-应用被扫描进来,2-应用安装,3-应用卸载,4-应用升级,5-应用信息更新',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='应用日志 表';
-- ----------------------------
-- Records of s_app_log
-- ----------------------------
-- END #####################################################
-- ##########################【学校管理】#########################
-- 学校管理系统角色
-- ----------------------------
-- Table structure for `s_school_admin_rule_category`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_admin_rule_category`;
CREATE TABLE `s_school_admin_rule_category` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` char(20) NOT NULL DEFAULT '' COMMENT '分类名称',
`pid` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属规则类型ID',
PRIMARY KEY (`id`),
UNIQUE KEY `title` (`title`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校管理员 规则分类(分组)表';
INSERT INTO `s_school_admin_rule_category`
(`id`, `title`, `pid`)
VALUES
(1, '学生管理', 0),
(2, '删除学生', 1);
-- ----------------------------
-- Records of s_school_admin_rule_category
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_admin_rule`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_admin_rule`;
CREATE TABLE `s_school_admin_rule` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` char(20) NOT NULL DEFAULT '' COMMENT '中文名称',
`rule` char(80) NOT NULL DEFAULT '' COMMENT '规则名(节点名,比如module/controller/action,这是单个的权限码)',
`category_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属规则类型ID',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1-正常,2-停用',
PRIMARY KEY (`id`),
UNIQUE KEY `rule` (`rule`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校管理员 规则表';
INSERT INTO `s_school_admin_rule`
(`title`, `rule`, `status`)
VALUES
('添加学生', 'admin/student/add', 1),
('删除学生', 'admin/student/del', 1);
-- ----------------------------
-- Records of s_school_admin_rule
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_admin_role`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_admin_role`;
CREATE TABLE `s_school_admin_role` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` char(100) NOT NULL DEFAULT '' COMMENT '角色名称',
`rules` text NULL COMMENT '规则集,使用逗号分隔,如果为all则表示拥有全部权限',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态',
PRIMARY KEY (`id`),
UNIQUE KEY `title` (`title`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校管理角色 表';
INSERT INTO `s_school_admin_role`
(`title`, `rules`, `status`)
VALUES
('学校管理员', 'all', 1),
('教务管理员', '', 1);
-- 老师不是属于学校管理员之列
-- ----------------------------
-- Records of s_school_admin_role
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_admin_role_join`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_admin_role_join`;
CREATE TABLE `s_school_admin_role_join` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户id',
`role_id` mediumint(8) unsigned NOT NULL COMMENT '角色id',
PRIMARY KEY (`id`),
UNIQUE KEY `user_id_role_id` (`user_id`,`role_id`) USING BTREE,
KEY `user_id` (`user_id`) USING BTREE,
KEY `role_id` (`role_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学校管理用户-角色 关联表';
-- ----------------------------
-- Records of s_school_admin_role_join
-- ----------------------------
-- 上面都是后台管理的访问权限,其实还有应用的管理权限
-- ----------------------------
-- Table structure for `s_school_admin`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_admin`;
CREATE TABLE `s_school_admin` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '管理员用户ID',
`nickname` char(16) NOT NULL DEFAULT '' COMMENT '昵称',
`avatar` varchar(500) NOT NULL DEFAULT '' COMMENT '头像',
`password` char(40) NOT NULL DEFAULT '' COMMENT '用户密码',
`salt` char(32) NOT NULL DEFAULT '' COMMENT '用于保护用户密码安全的盐值',
-- 这个用户邮箱和手机是唯一的,但是有的人开始并没有绑定邮箱或手机,所以也不能为空串,不然唯一冲突,所以只能允许为空null了,并且默认为null
`email` char(32) NULL DEFAULT NULL COMMENT '用户邮箱(可用作登录名)',
`mobile` char(15) NULL DEFAULT NULL COMMENT '用户手机(可用作登录名)',
`login` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '登录次数',
`create_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '注册IP',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '注册时间',
`last_login_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录IP',
`last_login_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`) USING BTREE,
UNIQUE KEY `mobile` (`mobile`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校管理员(包括学校管理员和老师) 表';
-- ----------------------------
-- Records of s_school_admin
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_admin_join`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_admin_join`;
CREATE TABLE `s_school_admin_join` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校ID',
`admin_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校管理员ID',
PRIMARY KEY (`id`),
UNIQUE KEY `school_id_admin_id` (`school_id`,`admin_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校管理员-学校 关联 表';
-- ----------------------------
-- Records of s_school_admin_join
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_corp`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_corp`;
CREATE TABLE `s_school_corp` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`corp_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '企业ID corpid',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '企业名称',
`portrait` varchar(500) NOT NULL DEFAULT '' COMMENT '企业头像',
`secret` varchar(500) NOT NULL DEFAULT '' COMMENT '通讯录secret',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:1-正常,0-待审核',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `corp_id` (`corp_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='企业号 表(和学校是一一对应的关系,一个【独立的学校个体】对应一个企业号(独立的学校个体指的是有学校独立注册文件的机构,分校也是独立的个体。但是校区就不是了的))';
-- ----------------------------
-- Records of s_school_corp
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_agent`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_agent`;
CREATE TABLE `s_school_agent` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '这个ID是我们系统的学校/企业的应用ID',
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校ID',
`app_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '对应的app_id,app表的ID',
`agent_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'agent_id(这个ID在微信内并不是唯一的,只是在企业内唯一)',
`corp_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '企业ID corpid',
`describe` text NULL COMMENT '描述',
`menu` text NULL COMMENT '应用自定义菜单',
`right_node` text NULL COMMENT '应用权限节点',
`edition` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '版次,不同于版本号,用于和s_app同步,如果应用更新后需要学校也同步更新,比如菜单更新了',
`secret` varchar(500) NOT NULL DEFAULT '' COMMENT 'secret',
`token` varchar(500) NOT NULL DEFAULT '' COMMENT 'token,应用回调模式的Token,在应用的回调模式里面设置',
`encoding_aes_key` varchar(500) NOT NULL DEFAULT '' COMMENT 'encoding_aes_key,应用回调模式的加密串,在应用的回调模式里面设置',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态(1-正常,2-系统停用,3-未启用,4-未同步(这边创建了,但是企业微信未上线),……)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `corp_id_agent_id` (`corp_id`,`agent_id`) USING BTREE,
UNIQUE KEY `school_id_app_id` (`school_id`,`app_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校(企业号)应用 表 (企业号的应用需要系统为其开通,就算企业微信那边自己设置了应用地址,这边没有开通也是没用的)';
-- 做法是,这边创建,然后给出参数,引导用户去企业微信那边添加应用,然后同步检查。
-- ----------------------------
-- Records of s_school_agent
-- ----------------------------
-- ----------------------------
-- Table structure for `s_agent_access_token`
-- ----------------------------
DROP TABLE IF EXISTS `s_agent_access_token`;
CREATE TABLE `s_agent_access_token` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`agent_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '应用ID,注意:这不是企业的应用ID,而是我们系统的应用ID',
`access_token` varchar(500) NOT NULL DEFAULT '' COMMENT 'access_token',
`expires_in` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '过期时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `agent_id` (`agent_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='企业应用 access_token 表';
-- ----------------------------
-- Records of s_agent_access_token
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school`
-- ----------------------------
DROP TABLE IF EXISTS `s_school`;
CREATE TABLE `s_school` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '学校名称',
`logo` varchar(500) NOT NULL DEFAULT '' COMMENT '学校logo',
`country` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '国家',
`province` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '省份',
`city` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '城市',
`district` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '县区',
`twon` int(11) unsigned NULL DEFAULT 0 COMMENT '乡镇',
`address` varchar(500) NOT NULL DEFAULT '' COMMENT '学校详细地址',
`school_type` varchar(250) NOT NULL DEFAULT '' COMMENT '学校类型,多选(1,2):1-幼儿园,2-小学,3-中学,4-高中,5-职校,6-大学',
`education_bureau_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属区教育局ID',
`salesman_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '开通的业务员ID,学校的开通着',
`manager_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '业务经理:当前负责的业务员ID',
`docking_people` text NULL COMMENT '学校对接负责人(json最多三个人,负责学校开通对接时联系,姓名,手机号码)',
`is_branch` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否为分校园,0-不为分校,1-为分校',
`school_brand_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '主校、学校品牌(机构)ID(如果为分校则由此值)',
`corp_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '对应的企业ID(非本身企业ID,而是我们Corp表的ID)',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:1-正常,0-停用',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `corp_id` (`corp_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校 表(一个学校是一个独立的个体,分校之间也是独立的个体,分校和校区是两个概念)';
-- ----------------------------
-- Records of s_school
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_log`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_log`;
CREATE TABLE `s_school_log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校ID',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '记录标题',
`content` text NULL COMMENT '内容',
`type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '记录类型(创建,变动,……)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校变动日志 表';
-- ----------------------------
-- Records of s_school_log
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_campus`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_campus`;
CREATE TABLE `s_school_campus` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '校区名称(如:A区、本部)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='校区 表';
-- ----------------------------
-- Records of s_school_campus
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_brand`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_brand`;
CREATE TABLE `s_school_brand` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '机构名称(主学校名称)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校(品牌)机构 表';
-- ----------------------------
-- Records of s_school_brand
-- ----------------------------
-- END #########################################
-- #################################【教学基础】##############################
-- ----------------------------
-- Table structure for `s_school_study_period`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_study_period`;
CREATE TABLE `s_school_study_period` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID(默认为0)',
`period_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学段ID',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校学段 表';
-- ----------------------------
-- Records of s_school_study_period
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_study_grade`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_study_grade`;
CREATE TABLE `s_school_study_grade` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID(默认为0)',
`grade_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '年级ID',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校年级 表';
-- ----------------------------
-- Records of s_school_study_grade
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_subject`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_subject`;
CREATE TABLE `s_school_subject` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '科目名称',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校科目 表';
-- ----------------------------
-- Records of s_school_subject
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_parents_student`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_parents_student`;
CREATE TABLE `s_school_parents_student` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`subject_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '科目ID',
`teacher_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '老师ID',
PRIMARY KEY (`id`),
UNIQUE KEY `subject_id_teacher_id` (`subject_id`,`teacher_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校科目 - 授课老师 关联 表';
-- ----------------------------
-- Records of s_school_parents_student
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_class_teacher`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_class_teacher`;
CREATE TABLE `s_school_class_teacher` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`class_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '班级ID',
`teacher_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '老师ID',
`relation` varchar(250) NOT NULL DEFAULT '' COMMENT '关系(多选逗号分隔),1-带课,2-班主任',
PRIMARY KEY (`id`),
UNIQUE KEY `class_id_teacher_id` (`class_id`,`teacher_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='班级-老师 关联 表(建立课程表时就和班级发生关联了,而不是加入时选班级)';
-- ----------------------------
-- Records of s_school_class_teacher
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_syllabus`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_syllabus`;
CREATE TABLE `s_school_syllabus` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID',
`class_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属班级ID',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '课程表名称(春季课程表)',
`start_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '课程表开始日期',
`end_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '课程表结束日期',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校课程 表(这个好像应该是要模块来支持的啊)';
-- ----------------------------
-- Records of s_school_syllabus
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_syllabus_detail`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_syllabus_detail`;
CREATE TABLE `s_school_syllabus_detail` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`syllabus` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '对应课程表ID',
`subject_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '科目ID(如果为空,则表示没有课,详见课节名,比如可能是统一的眼保健操)',
`teacher_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '老师ID(带课老师ID)(如果为空,则表示没有课,详见课节名,比如可能是统一的眼保健操)',
`time` varchar(50) NOT NULL DEFAULT '' COMMENT '节次/课节名(第一节课,午休,早读,眼保健操)',
`week` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '星期,周几1~7',
`lesson_name` varchar(500) NOT NULL DEFAULT '' COMMENT '时间段,09:10 ~ 10:30',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='课程表详细 表';
-- ----------------------------
-- Records of s_school_syllabus_detail
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_class`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_class`;
CREATE TABLE `s_school_class` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID(默认为0)',
`name` varchar(500) NOT NULL DEFAULT '' COMMENT '班级名称',
`is_graduation` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否毕业:0-正常,1-已毕业',
`graduation_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '毕业时间(毕业年份)',
`open_class` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '开班时间(开班年份)',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:1-正常,2-停用',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='班级 表';
-- ----------------------------
-- Records of s_school_class
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_teacher`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_teacher`;
CREATE TABLE `s_school_teacher` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '对应的用户ID,oauth_user表的ID',
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID(默认为0)',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:1-正常,2-停用',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='老师 表(老师和成员是一对一的,老师和班级通过关联表进行关联)';
-- ----------------------------
-- Records of s_school_teacher
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_student`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_student`;
CREATE TABLE `s_school_student` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属学校ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID(默认为0)',
`class_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属班级ID',
`name` varchar(500) NOT NULL DEFAULT '' COMMENT '学生姓名',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:1-正常,2-停用',
`is_claim` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否有家长认领:0-无,1-是',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`),
-- 班级内学生不能够重名(检测到重名时自动名称XX02)
UNIQUE KEY `class_id_name` (`class_id`,`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学生 表';
-- ----------------------------
-- Records of s_school_student
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_parents`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_parents`;
CREATE TABLE `s_school_parents` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '对应的用户ID,oauth_user表的ID',
`campus_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属校区ID(默认为0)',
`identity` varchar(50) NOT NULL DEFAULT '' COMMENT '家长身份,爸爸,妈妈,其它,还可以自定义(仅第一次关联时可以设置身份)',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:1-正常,2-停用',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='家长 表(家长和成员是一对一的,家长和学生通过关联表关联)';
-- ----------------------------
-- Records of s_school_parents
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_parents_student`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_parents_student`;
CREATE TABLE `s_school_parents_student` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '家长ID',
`student_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学生ID',
PRIMARY KEY (`id`),
UNIQUE KEY `parent_id_student_id` (`parent_id`,`student_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='家长-学生 关联 表';
-- ----------------------------
-- Records of s_school_parents_student
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_parents_class`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_parents_class`;
CREATE TABLE `s_school_parents_class` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '家长ID',
`class_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '班级ID',
PRIMARY KEY (`id`),
UNIQUE KEY `parent_id_class_id` (`parent_id`,`class_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='家长-班级 关联 表';
-- ----------------------------
-- Records of s_school_parents_class
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_class_log`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_class_log`;
CREATE TABLE `s_school_class_log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`class_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '班级ID',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '记录标题',
`content` text NULL COMMENT '内容',
`type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '记录类型(升级,改名,变动,……)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='班级变动记录(日志) 表';
-- ----------------------------
-- Records of s_school_class_log
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_student_log`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_student_log`;
CREATE TABLE `s_school_student_log` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`student_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学生ID',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '记录标题',
`content` text NULL COMMENT '内容',
`type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '记录类型(调班,留级,……)',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学生变动记录(日志) 表';
-- ----------------------------
-- Records of s_school_student_log
-- ----------------------------
-- END ######################################################
-- ###################【企业微信 通讯录 & 系统相关用户模块】######################
-- ----------------------------
-- Table structure for `s_oauth_user`
-- ----------------------------
DROP TABLE IF EXISTS `s_oauth_user`;
CREATE TABLE `s_oauth_user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`nickname` char(16) NOT NULL DEFAULT '' COMMENT '昵称/姓名,比如家长的姓名,老师的姓名',
`avatar` varchar(500) NOT NULL DEFAULT '' COMMENT '头像',
`password` char(40) NOT NULL DEFAULT '' COMMENT '用户密码',
`salt` char(32) NOT NULL DEFAULT '' COMMENT '用于保护用户密码安全的盐值',
-- 这个用户邮箱和手机是唯一的,但是有的人开始并没有绑定邮箱或手机,所以也不能为空串,不然唯一冲突,所以只能允许为空null了,并且默认为null
`email` char(32) NULL DEFAULT NULL COMMENT '用户邮箱(可用作登录名)',
`mobile` char(15) NULL DEFAULT NULL COMMENT '用户手机(可用作登录名)',
`login` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '登录次数',
`create_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '注册IP',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '注册时间',
`last_login_ip` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录IP',
`last_login_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '最后登录时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`) USING BTREE,
UNIQUE KEY `mobile` (`mobile`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='oauth_user 表(唯一的用户,手机号码和邮箱标示唯一性)';
-- ----------------------------
-- Records of s_oauth_user
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_oauth`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_oauth`;
CREATE TABLE `s_school_oauth` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校ID',
`openid` varchar(250) NULL DEFAULT NULL COMMENT 'openid,OpenId(非企业成员的标识,对当前企业唯一)',
`member_id` varchar(250) NULL DEFAULT NULL COMMENT '成员ID,即接口的UserID字段(成员UserID,对当前企业唯一)',
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '对应的用户ID,oauth_user表的ID',
`subscribe` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '关注状态,是否关注了微信插件',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `school_id_openid` (`school_id`,`openid`) USING BTREE,
UNIQUE KEY `school_id_user_id` (`school_id`,`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='school_oauth 表(成员表)';
-- 通讯录成员表(这些成员就是要使用微信插件的用户:家长,老师)
-- ----------------------------
-- Records of s_school_oauth
-- ----------------------------
-- 【通讯录-组织】(这是最好的方案,部门组织应该清晰明了的展示学校结构,便于查找成员)
-- XXX学校通讯录
-- 班级
-- 幼儿园
-- 小班(一班)
-- 教师组
-- XXX(职位:代课老师、班主任、副班主任)
-- ……
-- 家长组
-- XXX(职位:AAA的妈妈)
-- ……
-- ……
-- ……
-- 全体教师组(除了家长和学生外,学校的其它任何成员,都称为“老师”,包括校长,后勤)
-- XXX(老师)(职位:班主任,代课老师)
-- ……
-- 身份组(系统用来标示身份的,系统默认,不可修改,这是系统用来控制应用可见范围权限的)
-- 家长
-- 代课老师
-- 班主任
-- 学校领导
-- ----------------------------
-- Table structure for `s_school_organization`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_organization`;
CREATE TABLE `s_school_organization` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`school_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '学校ID',
`pid` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '上级ID',
`name` varchar(250) NOT NULL DEFAULT '' COMMENT '部门名称',
`is_default` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否为系统默认(1-系统默认的部门不能更改;0-非系统默认的,是用户可以自定义修改创建的部门)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='学校组织部门表 表';
-- ----------------------------
-- Records of s_school_organization
-- ----------------------------
-- ----------------------------
-- Table structure for `s_school_member_organization`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_member_organization`;
CREATE TABLE `s_school_member_organization` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`member_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '成员ID(s_school_oauth表的ID)',
`organization_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '组织ID',
PRIMARY KEY (`id`),
UNIQUE KEY `member_id_organization_id` (`member_id`,`organization_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='成员 - 部门组织 关联 表';
-- ----------------------------
-- Records of s_school_member_organization
-- ----------------------------
-- ################################【应用权限管理】#########################
-- 应用权限(分为:可见和使用权限,控制使用权限就自动设置可见权限了)
-- ----------------------------
-- Table structure for `s_school_member_organization`
-- ----------------------------
DROP TABLE IF EXISTS `s_school_member_organization`;
CREATE TABLE `s_school_member_organization` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`agent_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '应用ID(s_school_agent表的ID)',
`obj_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '组织ID',
`type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '对象类型,1-组织,2-成员',
PRIMARY KEY (`id`),
UNIQUE KEY `agent_id_obj_id_type` (`agent_id`,`obj_id`,`type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='应用(成员)可见权限 表(即应用的可见范围,貌似没有设置可见范围的接口,服务商的应用也是安装时选择可见范围的,也就是说没有提供这个接口,需要企业微信管理员自己去企业微信后台设置权限,但不排除以后会增加该接口)';
-- ----------------------------
-- Records of s_school_member_organization
-- ----------------------------
-- 【应用更细化的权限控制】(细化到操作)(不同角色可能有统一模块的可见权限,但是具体的操作权限可能不同)
-- 【成员】
-- 前台 应用可见权限(细化到部门和成员,上面已经实现)
-- 前台 操作权限(细化到部门和成员)
-- 【学校管理员】
-- 后台 应用可见(管理)权限(细化到角色和账号)
-- 后台 操作权限(细化到角色和账号)
-- 【老师】
-- 后台 应用可见权限(细化到角色和账号)
-- 后台 操作权限(细化到角色和账号)
-- 应用权限规则(节点,注意这个分为前台和后台) 表
-- 部门/角色/成员/账号 & 规则 关联 表
-- 见权限设计的讨论,已经设计确定好了
```
last update:2017-9-22 15:35:44