{"id":19719088,"url":"https://github.com/jocoboy/atams","last_synced_at":"2025-04-29T20:31:12.210Z","repository":{"id":38435277,"uuid":"272346941","full_name":"Jocoboy/ATAMS","owner":"Jocoboy","description":"Academic Teaching Affair Management System.","archived":true,"fork":false,"pushed_at":"2024-09-06T23:02:59.000Z","size":5746,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-27T23:18:12.068Z","etag":null,"topics":["bootstrap","ejs","express","mysql","vue","website"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jocoboy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-15T05:06:29.000Z","updated_at":"2024-09-06T23:14:27.000Z","dependencies_parsed_at":"2023-01-28T05:30:51.855Z","dependency_job_id":null,"html_url":"https://github.com/Jocoboy/ATAMS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jocoboy%2FATAMS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jocoboy%2FATAMS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jocoboy%2FATAMS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jocoboy%2FATAMS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jocoboy","download_url":"https://codeload.github.com/Jocoboy/ATAMS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251578411,"owners_count":21612033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","ejs","express","mysql","vue","website"],"created_at":"2024-11-11T23:06:14.566Z","updated_at":"2025-04-29T20:31:09.036Z","avatar_url":"https://github.com/Jocoboy.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 教务管理系统-MySQL数据库设计\n\nExpress+EJS+Bootstrap+MySQL\n\n![网站预览-前端](preview_web.png)\n\n![网站预览-后台](preview_admin.png)\n\n## 需求分析\n\n1. 分为学生用户、教师用户、管理员超级用户三种用户类型\n2. 通过用户类型选择，输入账号、密码登录系统\n3. 进入个人中心可修改个人信息(如密码等)\n4. 访问权限：\n\n|  用户类型   | 课程表(course)   | 学生信息表(student)  | 教师信息表(teacher) | 选修关系表(sc) | 教学任务表(tc) |用户表(user) |\n|  :----:  | :----:  | :----:  | :----:  | :----:  |:----:  |:----:  |\n| 学生用户  | yes | yes | no | yes |no |no |\n| 教师用户  | yes | no | yes | yes |yes |no |\n| 管理员超级用户  | yes | yes | yes | yes | yes | yes |\n\n5. 操作权限：\n\n|  用户类型   | 权限内容 |\n|  :----:  | :----:  |\n| 学生用户  | 查询课程库信息、个人成绩、教学任务，添加选课记录 |\n| 教师用户  | 添加、修改、删除教学任务，添加学生成绩记录 |\n| 管理员超级用户  | 查询和修改任意表 |\n\n\n## 概念结构设计\n\n教务管理涉及以下几个实体:\n- 学生：属性有学号、姓名、性别、年龄\n- 教师：属性有教师号、姓名、职称\n- 课程：属性有课程号、课程名、课程类别\n- 用户：属性有用户账号、用户密码、用户类型\n\n实体间的联系如下：\n\n(1)一个学生可以选修多门课程，一门课程可被多名学生选修，所以学生和课程之间是多对多(m:n)关系。\n\n(2)一个教师可以教授多门课程，一门课程可被多名教师教授，所以课程和教师之间是多对多(m:n)关系。\n\n\nE-R图表示如下：\n\n\u003cimg src=\"E-R.jpg\" style=\"width: 100%;\" alt=\"E-R图\" /\u003e\n\nUML类图表示如下：\n\n\u003cimg src=\"UML.jpg\" style=\"width: 100%;\" alt=\"UML图\" /\u003e\n\n## 逻辑结构设计\n\n### E-R图向关系模型的转换\n\n将E-R图转换为关系模型，关系的码用**粗体**显示。\n\n|  关系模式   | 归属类别 |\n|  :----:  | :----:  |\n| 学生(**学号**，性别，姓名，年龄)  | 实体 |\n| 课程(**课程号**，课程名，课程类别，教师号)  | 实体 |\n| 教师(**教师号**，性别，职称)  | 实体 |  \n| 用户(**用户账号**，用户密码，用户类型)  | 实体 |  \n| 选修(**学号**，**课程号**，成绩)  | 联系 |  \n| 教授(**课程号**，教学任务)  | 联系 |  \n\n## 物理结构设计\n\n### 选择合适的存储引擎\n\nMySQL数据库提供了InnoDB、MyISAM、ndbcluster、MEMORY、FEDERATED、ARCHIVE、CSV、BLACKHOLE、MRG_MyISAM等9种存储引擎。\n\n本数据库采用MySQL默认存储引擎InnoDB。该引擎支持事物和多版本并发控制(MVCC)的行级锁，且支持外键完整性约束。\n\n## 数据库实施\n\n### MySQL字段标识说明\n\n|  标识符| sql 关键字   | 含义 |备注 |\n|  :----: |  :----:  | :----:  |:----:  |\n| PK |primary key | Belongs to primary key |主键|\n| NN |not null | Not Null |非空|\n| UQ  | unique| Unique index | 唯一索引| \n| B  |binary| Is binary column |存放二进制数据的列  | \n| UN |unsigned | Unsigned data type | 无符号数 （例如-500 to 500替换成0 - 1000,需要整数形数据） |\n| ZF |/ | Fill up values for that column with 0's if it is numeric |  填充0位（例如指定3位小数，整数18就会变成18.000） |\n| AI | auto_increment| Auto Incremental | 自增 |\n| G  |generated| Generated Column | 基于其他列的公式生成值的列 |\n\n## 数据库运行和维护\n\n- 采用`crypto`模块的`MD5`信息摘要算法，将用户密码以密文形式存储\n- 采用参数化查询，防止SQL注入攻击\n\n## 数据字典\n\n### course (课程表) \n| 序号 | 字段名称 | 数据类型 | 是否为空 | 字段说明 |\n| :--: |----| ---- | ---- | ---- |\n| 1 | Cno | char(10) | NO | 课程号 |\n| 2 | Cname | varchar(20) | YES | 课程名 |\n| 3 | Ctype | varchar(5) | NO | 课程类别 |\n| 4 | Tno | char(13) | NO | 教师号 |\n\n\n\n### sc (选课关系表) \n| 序号 | 字段名称 | 数据类型 | 是否为空 | 字段说明 |\n| :--: |----| ---- | ---- | ---- |\n| 1 | Sno | char(13) | NO | 学号 |\n| 2 | Cno | char(10) | NO | 课程号 |\n| 3 | Grade | tinyint unsigned | YES | 成绩 |\n\n\n\n### student (学生表) \n| 序号 | 字段名称 | 数据类型 | 是否为空 | 字段说明 |\n| :--: |----| ---- | ---- | ---- |\n| 1 | Sno | char(13) | NO | 学号 |\n| 2 | Sname | varchar(10) | YES | 姓名 |\n| 3 | Ssex | char(2) | NO | 性别 |\n| 4 | Sage | tinyint unsigned | NO | 年龄 |\n\n\n\n### tc (教学任务表) \n| 序号 | 字段名称 | 数据类型 | 是否为空 | 字段说明 |\n| :--: |----| ---- | ---- | ---- |\n| 1 | Cno | char(10) | NO | 课程号 |\n| 2 | Tcontent | varchar(200) | YES | 教学任务 |\n\n\n\n### teacher (教师表) \n| 序号 | 字段名称 | 数据类型 | 是否为空 | 字段说明 |\n| :--: |----| ---- | ---- | ---- |\n| 1 | Tno | char(13) | NO | 教师号 |\n| 2 | Tname | varchar(10) | YES | 姓名 |\n| 3 | Tposition | varchar(3) | NO | 职称 |\n\n\n\n### user (用户表) \n| 序号 | 字段名称 | 数据类型 | 是否为空 | 字段说明 |\n| :--: |----| ---- | ---- | ---- |\n| 1 | Uaccount | varchar(16) | NO | 用户账号 |\n| 2 | Upwd | char(32) | NO | 用户密码 |\n| 3 | Utype | varchar(3) | YES | 用户类型 |\n| 4 | Uno | char(13) | YES | 学生和教师独有属性列 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjocoboy%2Fatams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjocoboy%2Fatams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjocoboy%2Fatams/lists"}