💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 数据字典 ```[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