【数据库课程设计】阶段一:设计主题的确定

兜兜转转,东忙西忙,终于记得要做数据库课程设计了,然而距离提交语义描述还有两周时间(>w<),于是我开始物色主题了。

起初,想法很多。像什么“学生选课系统”、“学生宿舍管理系统”、“学生选课系统”、“汽车维护管理系统”、“酒店管理系统”,甚至还有上学期做的“井冈蜜柚后台管理系统”。但是都被我筛掉了,不是我觉得简单之类的,事实上如果要仔细做的话,也不是很简单的,而是觉得可能对于实用性以及以后工作什么的普适性不大。

我还是选择了我相对比较感兴趣的,难度较大的课设——“商店零售管理系统”,但是毕竟是个人设计,能力有限,对于一个前端只学过一点点H5以及css、JavaScript(Ext Js)后端只学过SSM还不是特别熟练,一点点SpringBoot的我来说,这个课设相当有难度,但是我爱挑战,就试一试,废话不多说,下面开始介绍一下我的设计思路。我先放组织架构图吧。
在这里插入图片描述
这是我自己的一些想法,结合之前的工作经历以及网上一些成熟ERP的结构,构思了上面的结构模型。发现确实是一个庞大的工作量,以我现在的能力还是难以独立完成的,所以有了如下的一个子模块:
在这里插入图片描述

别小看这是一个子模块,所谓“麻雀虽小,五脏俱全”,里面还是有很多的门道的,也不是那么简单的。。。。

以上就是我目前构建的一个架构了,如有遗漏欢迎补充。

这里放一下某ERP的结构模型:
在这里插入图片描述
关于数据库设计部分会在后面更新,欢迎指正和补充。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
教师课程数据库设计需要经历以下几个阶段: 1. 需求分析阶段:这个阶段的主要目的是了解用户的需求,以此来确定数据库的功能和限制。在这个阶段,需要与教师或者教学管理人员沟通,了解他们的需求,例如需要记录哪些信息,需要哪些查询功能等等。 2. 概念设计阶段:在这个阶段,需要将需求转化为概念模型。这个模型是一个高层次的抽象,描述了数据库中的实体、属性以及它们之间的关系。在这个阶段,可以使用ER图等工具来建立概念模型。 3. 逻辑设计阶段:逻辑设计是将概念模型转化为数据库模式的过程。在这个阶段,需要将概念模型转换为关系模型,并进行规范化。同时,需要考虑数据的完整性、安全性和性能等问题。 4. 物理设计阶段:在这个阶段,需要考虑数据库的实现细节,例如数据存储、查询优化等。同时,需要选择和配置数据库管理系统,例如MySQL、Oracle等。 5. 实现阶段:在这个阶段,需要根据物理设计阶3,选择4,选择5,选择6,选择7,选择8,选择9,选择10,选择11,选择12,填空题17,填空题18,填空题19,填空题20,填空题21,填空题22" << endl; for (const auto& student : cls.students) { outfile << student.id << "," << student.name << "," << student.class_name << "," << student.total_score << "," << student.school_rank << "," << student.class_rank << "," << student.objective_score << "," << student.subjective_score << ","; for (int score : student.objective_scores) { outfile << score << ","; } outfile << student.subjective_scores[0] << "," << student.subjective_scores[1] << "," << student.subjective_scores[2] << "," << student.subjective_scores[3] << "," << student.subjective_scores[4] << "," << student.subjective_scores[5] << endl; } outfile.close(); return true; } // 将学校的班级信息导出为CSV文件 bool writeSchoolCsvFile(const string& filename, const SchoolInfo& school) { ofstream outfile(filename); if (!outfile.is_open()) { return false; } outfile << "考号,姓名,班级,总分,学校排名,班级排名,客观题总分,主观题总分,选择1,选择2,选择3,选择4,选择5,选择6,选择7,选择8,选择9,选择10,选择11,选择12,填空题17,填空题18,填空题19,填空题20,填空题21,填空题22" << endl; for (const auto& cls : school.classes) { for (const auto& student : cls.students) { outfile << student.id << "," << student.name << "," << student.class_name << "," << student.total_score << "," << student.school_rank << "," << student.class_rank << "," << student.objective_score << "," << student.subjective_score << ","; for (int score : student.objective_scores) { outfile << score << ","; } outfile << student.subjective_scores[0] << "," << student.subjective_scores[1] << "," << student.subjective_scores[2] << "," << student.subjective_scores[3] << "," << student.subjective_scores[4] << "," << student.subjective_scores[5] << endl; } } outfile.close(); return true; } // 主程序入口 int main() { // 读取数据文件,将学生信息存储到容器中 vector<StudentInfo> students; if (!readDataFile("data.txt", students)) { cout << "Failed to read data file." << endl; return 1; } // 读取demo文件,将表头写入输出文件 if (!writeDemoFile("output.csv")) { cout << "Failed to write demo file." << endl; return 1; } // 将学生信息写入输出文件,并计算每个学生在班级和学校中的排名 if (!writeOutputFile("output.csv", students)) { cout << "Failed to write output file." << endl; return 1; } SchoolInfo school; // 按照班级将学段的结果来实现数据库。这个阶段包括建立数据表、定义索引、编写存储过程生信息分类,并计算班级总分 map<string, ClassInfo> class_map; for (const auto& student :等。 6. 测试和维护阶段:在实现数据库之后,需要进行测试来确保数据库的正确性和 students) { auto& cls = class_map[student.class_name]; cls.class_name = student.class_name; cls.students.push稳定性。同时,需要定期进行维护和优化,以满足用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值