计算机专业答辩问题及答案
计算机毕设答辩问题 -回复

计算机毕设答辩问题 -回复计算机毕设答辩是每名计算机专业毕业生所必须经历的一道关卡。
在答辩中,考官将会就学生所完成的毕设进行提问和评估,以此来考察学生的专业知识和能力。
下面将列举一些可能会在计算机毕设答辩中被提出的问题并给予回答。
问题1:你毕设的意义是什么?它能解决什么问题?回答:我的毕设旨在解决某个特定问题或者改进某个方面的现有技术。
通过我的毕设,我希望能够提供更高效、更可靠、更安全的解决方案。
问题2:你的毕设所涉及的技术领域有哪些?它们有什么关系?回答:我的毕设主要涉及的技术领域包括A、B、C等方面。
这些技术互相联系,通过这些技术的综合运用,我能够实现我的毕设目的。
问题3:你在完成毕设的过程中遇到了哪些问题?你是如何解决这些问题的?回答:在完成毕设的过程中,我遇到过一些技术上或者设计上的问题。
为了解决这些问题,我做了XXX,YYY等等措施。
这些措施使得我最终能够完成我的毕设。
问题4:你的毕设有什么创新之处?有什么与众不同的地方?回答:我的毕设最大的创新之处在于XXX。
同时,我使用了一些目前在该领域尚未广泛采用的技术,这使得我的毕设与众不同。
问题5:你认为你毕设的不足之处在哪里?你将如何改进它?回答:我的毕设还有一些地方有待提高,例如XXX。
为了改进我的毕设,我将会进行更深入的研究并寻找更好的解决方案。
问题6:你将来是否会继续在该领域做进一步的研究和开发?回答:是的,我很有兴趣在该领域继续深入的研究和开发。
我认为该领域具有广阔的前景和巨大的发展潜力,在未来我将会在该领域继续进行我自己的研究和开发。
毕设答辩需要学生具备扎实的专业知识和吃苦耐劳的精神。
通过答辩所带来的考验和挑战,可以使学生更加深入地了解自己所研究领域的细节并为将来的研究打下坚实的基础。
因此,我们应该认真对待每一次答辩机会,成为一名更加优秀的计算机专业人士。
计算机专业复试面试问题含答案

计算机专业复试面试问题含答案1. 请介绍一下自己及自己的学术背景。
回答:我叫张三,是一位计算机专业的本科毕业生。
我在大学期间主修计算机科学与技术专业,学习了计算机基础知识、数据结构与算法、操作系统、数据库等相关课程。
我在大学期间也积极参加了一些计算机竞赛和项目实践,积累了一定的实践经验。
2. 你为什么选择继续深造计算机专业?回答:我对计算机科学和技术有浓厚的兴趣,也意识到计算机技术在现代社会的重要性。
我希翼通过深造计算机专业,进一步提升自己的专业知识和技能,为社会的发展做出更大的贡献。
3. 你在本科阶段的研究方向是什么?回答:在本科阶段,我主要关注了人工智能和机器学习方向。
我参预了一个基于深度学习的图象识别项目,并取得了一定的成果。
我也在课余时间自学了一些相关的算法和工具,对此领域有一定的了解。
4. 你对人工智能的发展有什么看法?回答:我认为人工智能是当前科技领域的热点和前沿领域。
它有着广泛的应用前景,可以在医疗、交通、金融等各个领域发挥重要作用。
但同时,我也认识到人工智能的发展还面临一些挑战,比如数据隐私和伦理问题等。
我希翼通过深入研究和学习,为人工智能的发展贡献自己的力量。
5. 请谈谈你对大数据的理解。
回答:大数据是指数据量巨大、复杂度高、处理速度快的数据集合。
它可以通过各种技术和方法来进行分析和利用,从而发现潜在的模式和关联。
大数据可以应用于商业、科学研究等领域,匡助人们做出更明智的决策和预测。
6. 你在团队合作中的角色是什么?回答:在团队合作中,我通常会担任团队的协调者和沟通者的角色。
我善于与他人合作,能够有效地组织团队成员的工作,解决团队合作中的问题。
我也乐于分享自己的知识和经验,匡助团队达到共同的目标。
7. 请谈谈你对软件工程的理解。
回答:软件工程是一门关于软件开辟和维护的学科。
它涵盖了软件开辟的各个阶段,包括需求分析、设计、编码、测试和维护等。
软件工程的目标是提高软件开辟的效率和质量,确保软件能够满足用户的需求。
计算机答辩面试题及答案

计算机答辩面试题及答案一、简述计算机操作系统的主要功能。
答:计算机操作系统的主要功能包括:1. 进程管理:负责创建、调度、同步和终止进程。
2. 内存管理:负责分配、回收和管理内存资源。
3. 文件系统管理:负责文件的创建、删除、读写和目录管理。
4. 设备管理:负责分配和控制硬件设备。
5. 用户接口:提供用户与操作系统交互的界面,如命令行和图形用户界面。
6. 安全管理:负责系统的安全性,包括用户认证、授权和数据保护。
二、解释计算机网络中的TCP/IP协议。
答:TCP/IP协议是一组用于互联网通信的协议集合,它定义了电子设备如何在网络上进行数据交换。
TCP/IP协议包括:1. 网络接口层:负责将IP数据包封装成帧,通过物理网络发送。
2. 互联网层:主要协议是IP协议,负责数据包的寻址和路由。
3. 传输层:主要协议是TCP和UDP,负责提供端到端的数据传输服务。
4. 应用层:包括各种网络应用程序使用的协议,如HTTP、FTP、SMTP 等。
三、描述数据库管理系统(DBMS)的基本组成。
答:数据库管理系统(DBMS)的基本组成包括:1. 数据定义语言(DDL):用于定义数据库结构,如表、视图和索引。
2. 数据操纵语言(DML):用于访问和修改数据库中的数据。
3. 数据控制语言(DCL):用于定义数据的安全性和完整性。
4. 数据查询语言(DQL):如SQL,用于查询和检索数据库中的数据。
5. 数据库引擎:负责数据的存储、检索和维护。
6. 事务管理:确保数据库操作的原子性、一致性、隔离性和持久性。
四、阐述云计算服务的三种主要类型。
答:云计算服务的三种主要类型包括:1. 基础设施即服务(IaaS):提供虚拟化的计算资源,如服务器、存储和网络。
2. 平台即服务(PaaS):提供应用程序开发和部署的平台,包括操作系统、数据库和开发工具。
3. 软件即服务(SaaS):通过互联网提供应用程序,用户可以直接使用而无需安装和维护。
计算机专业答辩记录表问题及回答模板

计算机专业答辩记录表问题及回答模板以下是一份可能有用的模板,包括可能被问到的问题和回答:1. 请简要介绍你的毕业论文/项目内容。
回答:我的毕业论文/项目内容是XXX。
它主要研究了XXX,并通过XXX方法实现了XXX功能。
具体来说,我们进行了XXX实验/调研,并得出了XXX结论/建议。
该项目对于XXX领域的发展有着重要意义。
2. 在项目中,你遇到了哪些技术难点?你是如何解决的?回答:在项目中,最大的技术难点是XXX。
为了解决这个问题,我们采用了XXX方法,比如XXX算法、XXX框架等。
我们还进行了XXX 实验/测试,并不断优化改进,最终取得了XXX成果。
3. 你认为你的毕业论文/项目对计算机领域有什么贡献?回答:我认为,我的毕业论文/项目对计算机领域有以下几方面的贡献:- 针对XXX问题,提出了新的思路和方法,为相关研究提供了参考;- 实现了XXX功能,可以应用于XXX场景,为相应领域带来便利与效益;- 对XXX进行了深入研究,探索了其中的机理和规律,为今后的相关研究提供了基础和启示。
4. 你觉得你在项目中取得的哪些技能会对你未来的职业发展有帮助?回答:通过这个项目,我学会了XXX技能。
我相信,在未来的职业生涯中,我可以把这些技能应用到实际工作当中,并且不断完善和提升它们。
比如XXX技能可以帮助我XXX,XXX技能可以让我更好地XXX。
5. 最后,你有什么想对评委或听众说的话吗?回答:非常感谢您们能够参加我的答辩,听我介绍我的毕业论文/项目。
我希望我的介绍能够让您们对我的研究有更深入的了解。
如果您们有任何问题或建议,欢迎随时联系我,我非常乐意与您们交流。
谢谢!。
计算机答辩问题

计算机答辩是指在完成学位论文或毕业设计后,学生需要面对评委提出的问题进行回答的过程。
答辩问题通常涉及论文的研究内容、技术细节、实验方法、结果分析以及学生的综合能力等方面。
以下是一些可能在计算机答辩中出现的问题类型:1. 研究背景和意义:-你的研究是基于什么问题或需求?-你为什么选择这个特定的研究领域?-你的研究对现实世界有什么意义或应用?2. 文献综述:-你在研究过程中查阅了哪些相关文献?-你是如何评价这些文献的?-你的研究与现有研究有什么不同?3. 研究方法和设计:-你采用了哪些研究方法?-你的实验设计有哪些关键点?-你是如何确保实验的准确性和可靠性的?4. 技术细节:-你在实现过程中遇到了哪些技术难题?-你是如何解决这些问题的?-你使用了哪些工具或软件?5. 实验结果和分析:-你的实验结果是什么?-你是如何分析这些结果的?-结果是否支持你的研究假设或目标?6. 讨论和结论:-你在研究中得出了哪些结论?-你是如何将这些结论与现有的研究进行对比的?-你的研究有哪些局限性?7. 未来工作和建议:-你认为未来的研究应该如何继续?-你有什么建议或展望?8. 综合能力:-你是如何管理你的研究时间的?-你在研究过程中学到了哪些重要的技能或经验?-你是如何处理团队合作中的冲突和挑战的?9. 问题解决能力:-你在研究过程中遇到了哪些问题?-你是如何识别和解决这些问题的?-你认为一个好的研究者应该具备哪些品质?准备答辩时,学生应该对自己的论文内容有深入的了解,并准备好回答可能提出的问题。
此外,学生还应该练习良好的公众演讲技巧,以便在答辩时能够清晰、自信地表达自己的观点。
计算机专业答辩记录表问题及回答模板

计算机专业答辩记录表问题及回答模板
Q: 请简单介绍一下你的毕业设计的选题背景和意义?
A: 我的毕业设计选题是XXX。
选题背景是因为在目前的社会中,XXX的应用越来越普遍,因此需要一种更加高效、准确
的技术来解决XXX问题。
我的设计通过YYY方法来实现
XXX问题的解决,具有更高的效率和准确性,并且具有实际
应用价值。
Q: 请简单介绍一下你的毕业设计的主要内容和技术方案?
A: 我的毕业设计主要分为XXX 和 YYY 两个部分。
XXX 关注于什么什么问题,利用什么技术进行解决,YYY 关注于什么
什么问题,利用什么技术进行解决。
具体来说,我使用了
AAA技术和BBB技术,通过CCC和DDD方法达到了较好的效果。
Q: 在毕业设计中,你遇到了哪些困难,是如何解决的?
A: 在毕业设计过程中,我遇到了许多困难,主要集中在XXX
方面。
解决这些困难的方法主要有YYY,ZZZ等。
具体来说,我采取了什么措施、花费了多长时间以及取得了什么成果等进行详细回答。
Q: 在毕业设计过程中,你个人进行了哪些贡献?
A: 在毕业设计过程中,我的主要贡献包括XXX和YYY。
具
体来说,我完成了什么工作、解决了哪些问题、取得了什么成果等作出详细回答即可。
Q: 你在毕业设计中遇到的问题是否做过相关的调研和资料收集?
A: 是的,在毕业设计中遇到的问题,我都进行了相关的调研
和资料收集。
具体来说,我进行了哪些调研、研究了哪些文献、花费了多长时间等进行详细回答。
答辩(计算机专业答辩题目选集)

一、1、B/S结构和C/S结构的主要区别是什么?为何选择B/S?2、数据库用了几张数据表?表间关系是什么?如何解决关联问题?3、简述ASP访问Acess 2000的方法,系统用了哪一种?4、MIS有几种开发方法?系统采用了哪种方法?5、系统在安全性方面采取了哪些措施?系统从哪几个方面考虑?二、1、C/S结构前台开发工具有哪几种?你用的是哪种?2、简述软件常用测试方法?你采用了哪种?为什么?3、系统采用哪种用户认证方法?如何保证密码安全性?(密码如何处理?认证过程?)4、如何实现查询?什么是精确查询、模糊查询?系统采用哪种?5、数据库备份如何实现?采用了Delphi中什么技术?三、1、程序中采用什么方法访问数据库?除此还有什么方法?2、客户数据分析表用什么技术实现?3、系统用了哪几种查询方法?它们有什么区别?4、数据备份在VB中如何实现?5、写一段完整的VB代码(Form/Click/DoubleClick)四、1、开发一个购物网站主要要解决的问题?2、怎样解决网上购买支付的安全性问题?3、ASP的六个内置对象是什么?怎么使用?(Request、Response怎么用?)4、电子商务的模式有几种?你用哪种?5、全站搜索的实现?两种搜索模式?五、1、系统结构为何选.Net而不用B/S?2、系统如何分发客户端?即客户端如何安装?3、C/S和B/S结构的安全性比较(从安全性角度,CS和BS的区别)4、系统如何访问数据库?5、解释什么是三层结构?系统如何设计?六、1、什么是CSS样式?CSS的英文全称是什么?2、系统如何实现权限管理?3、阐述系统日志的功能及其实现方法。
4、在网页中插入ASP脚本的2种方法是什么?七、1、ADO与Access数据库如何连接?2、你认为系统有何缺陷?应如何改进?3、用户帐号密码存在何处?4、购物车信息表和货物流信息表是什么关系?货物代码和货物号为何不一致?八、1、系统如何实现数据备份和数据恢复?2、学校科技处和设备处对该系统是否认可?有何意见?3、开发一个真正实用的系统要注意哪些问题?4、怎样验证用户权限?5、在线报名可能出现很多混乱,你如何解决该问题?九、1、为何选用JSP开发动态网页,而不是选择ASP、PHP?2、阐述JSP访问后台数据库的方法是什么?系统如何实现?3、你如何理解“JSP不局限于某个平台”?是可用于任何平台还是对平台有某种要求?4、解释什么是“Javabean”?5、微软中类似于Java中“Javabean”的是什么?十、1、会员注册流程是什么?如何实现?2、系统用了几张表?它们之间关系如何?3、请举2个常用SQL语句并说明它的功能。
计算机答辩问题案例

计算机答辩问题案例
以下是一些计算机答辩问题的案例:
1. 请解释什么是TCP/IP协议?它的作用是什么?
2. 请简要介绍一下人工智能的基本概念和应用领域。
3. 请解释什么是数据库事务?它的特点是什么?
4. 什么是云计算?请说明它的优势和劣势。
5. 请解释什么是软件工程?在软件项目中,为什么软件需求工程是重要的环节?
6. 请简要介绍一下HTML5的新特性和优势。
7. 请解释什么是正则表达式?并举例说明它在编程中的应用场景。
8. 请解释什么是操作系统?它在计算机系统中的角色是什么?
9. 请解释什么是面向对象编程(OOP)?它的基本特征有哪些?
10. 请介绍一下常见的网络攻击类型,并提出相应的防范措施。
这些问题涉及计算机科学的不同领域,包括网络、数据库、人工智能、软件工程等。
答辩者需要对这些领域有一定的了解和
理解,并能简洁明了地回答问题。
答辩过程中,答辩者还可以结合自己的项目经验来展示自己的技术能力和理解能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. B/S结构程序与C/S结构程序各有哪些特点?C/S 模式的特点●由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
●操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
●C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
●需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
●兼容性差,对于不同的开发工具,具有较大的局限性。
若采用不同工具,需要重新改写程序。
●开发成本较高,需要具有一定专业水准的技术人员才能完成。
B/S模式的特点●具有分布性特点,可以随时随地进行查询、浏览等业务处理。
●业务扩展简单方便,通过增加网页即可增加服务器功能。
●维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
●开发简单,共享性强。
●个性化特点明显降低,无法实现具有个性化的功能要求。
●操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
●页面动态刷新,响应速度明显降低。
●无法实现分页显示,给数据库访问造成较大的压力。
●功能弱化,难以实现传统模式下的特殊功能要求。
2. 说明软件设计与开发过程分为哪几个阶段。
每个阶段你都做了哪些工作,得到什么设计结果。
需求分析:分析用户的实际需求,了解应用背景,明确各功能点;概要设计:基于需求分析,设计整体解决方案;详细设计:基于概要设计,完成每个模块的设计;编码:基于详细设计,对每个功能模块进行编码实现;测试:在本系统中主要是过行了单元测试;3. 需求分析阶段的主要任务是什么?为了完成这些任务,你都做了哪些工作?(1)确定对系统的综合要求,分析系统的业务需求、用户需求和功能需求,导出系统的逻辑模型,修正系统的开发计划。
(2)与用户细致沟通,了解用户之前的系统功能、运行模式等,理解用户的真识想法,以原型模式演示需求了解的状况,基于对用户的理解,编写了功能分析、性能分析、环境约束等方面文档;4. 什么是数据流图?什么是数据字典?它们的作用是什么?数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明5. 说明管理信息系统设计和开发的基本过程分为几个阶段?每个阶段的主要工作是什么?管理信息系统的开发可分为系统规划、系统分析、系统设计、系统实施、系统维护和评价五个阶段。
各阶段的主要工作概要说明如下。
(1).系统规划阶段系统规划阶段的任务是:在对原系统进行初步调查的基础上提出开发新系统的要求,根据需要和可能,给出新系统的总体方案,并对这些方案进行可行性分析,产生系统开发计划和可行性研究报告两份文档。
(2).系统分析阶段系统分析阶段的任务是根据系统开发计划所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑模型,这个阶段又称为逻辑设计阶段。
系统分析阶段的工作成果体现在“系统分析说明书”中,这是系统建设的必备文件。
它是提交给用户的文档,也是下一阶段的工作依据,因此,系统分析说明书要通俗易懂,用户通过它可以了解新系统的功能,判断是否所需的系统。
系统分析说明书一旦评审通过,就是系统设计的依据,也是系统最终验收的依据。
(3).系统设计阶段系统分析阶段回答了新系统“做什么”的问题,而系统设计阶段的任务就是回答“怎么做”的问题,即根据系统分析说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,也即设计新系统的物理模型。
所以这个阶段又称为物理设计阶段。
它又分为总体设计和详细设计两个阶段,产生的技术文档是“系统设计说明书”。
(4).系统实施阶段系统实施阶段的任务包括计算机等硬件设备的购置、安装和调试,应用程序的编制和调试,人员培训,数据文件转换,系统调试与转换等。
系统实施是按实施计划分阶段完成的,每个阶段应写出“实施进度报告”。
系统测试之后写出“系统测试报告”。
(5).统维护和评价阶段系统投入运行后,需要经常进行维护,记录系统运行情况,根据一定的程序对系统进行必要的修改,评价系统的工作质量和经济效益6. 概念数据库设计的主要任务是什么?应该完成哪些工作?对用户要求描述的现实世界,通过对其分类、聚集和概括,建立抽象的概念数据模型。
这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。
所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。
以扩充的实体—联系(E-R模型)模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。
第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
7. 解释ER图并说明ER图的作用矩形框:表示实体,在框中记入实体名。
菱形框:表示联系,在框中记入联系名。
椭圆形框:表示实体或联系的属性,将属性名记入框中。
对于主属性名,则在其名称下划一下划线。
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。
(对于一对一联系,要在两个实体连线方向各写1;对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
8. 数据库/数据库管理系统/数据库系统在概念上有什么区别?结合你的设计说明数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
9. 自己为什么选择这个课题?面对现在医疗资源分配不均的状况,一些条件较好医院的住院部经常是人满为患。
对于每一位住院病人,医院都记录有大量的信息。
这些资料在病人出院后将由医院保管,成为日后病人继续治疗或者法律纠纷中极有价值的信息,它也是临床医学研究工作中的宝贵资源,更是循证医学中较好的临床证据。
面对如此庞大而又复杂的信息集,开发一个小型的应用软件系统,对病人的住院资料进行安全、有序的记录和管理,并提供一些简便的查询和统计操作,以方便医生的查找以及日后的临床研究分析,这将是一个科学而实用的管理方法。
因此我选择了本课题。
10. 你觉得系统哪些部分做的比较好,还有那些地方需要改进?优点:该系统充分完成了客户请求的功能要求。
在整个设计中,通过使用瀑布模型和结构化设计方法。
该系统界面简单易懂,整洁大方,易于操作,独具自身特点。
并且实现分级管理,保证了系统的安全性,并且实现了子管理员之间的独立管理,提高了使用者的工作效率。
缺点:(1)有些数据输入时没有及时的进行数据格式校验,不能保证数据绝对正确性。
(2)由于时间关系,系统功能实现不够完善,使用可能存在一些不方便。
11. 介绍一下软件的发展前景?随着医学技术的发展与医疗卫生水平的不断提高,停留在纸介质基础上的医院住院病人资料管理浪费了大量的人力和物力,已经不能适应时代的发展,其安全性也不能得到有效的保障。
在信息时代这种传统的管理方法必将被以计算机为基础的管理信息系统所取代,因此根据医院住院部目前实际的管理情况开发一套病房管理系统是十分必要的。
12. 说明在设计数据库表时你是如何考虑的?数据库是整个软件应用的根基,是软件设计的起点,它起着决定性的质变作用,因此我们必须对数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设计师所必须具备的基本素质条件!那么我们要做到什么程度才是对的呢?下面就说说数据库设计的原则:(1)、数据库设计最起码要占用整个项目开发的40%以上的时间数据库是需求的直观反应和表现,因此设计时必须要切实符合用户的需求,要多次与用户沟通交流来细化需求,将需求中的要求和每一次的变化都要一一体现在数据库的设计当中。
如果需求不明确,就要分析不确定的因素,设计表时就要事先预留出可变通的字段,正所谓“有备无患”。
(2)、数据库设计不仅仅停留于页面demo的表面页面内容所需要的字段,在数据库设计中只是一部分,还有系统运转、模块交互、中转数据、表之间的联系等等所需要的字段,因此数据库设计绝对不是简单的基本数据存储,还有逻辑数据存储。
(3)、数据库设计完成后,项目80%的设计开发在你脑海中就已经完成了每个字段的设计都是有他必要的意义的,你在设计每一个字段的同时,就应该已经想清楚程序中如何去运用这些字段,多张表的联系在程序中是如何体现的。
换句话说,你完成数据库设计后,程序中所有的实现思路和实现方式在你的脑海中就已经考虑过了。
如果达不到这种程度,那当进入编码阶段后,才发现要运用的技术或实现的方式数据库无法支持,这时再改动数据库就会很麻烦,会造成一系列不可预测的问题。
(4)、数据库设计时就要考虑到效率和优化问题一开始就要分析哪些表会存储较多的数据量,对于数据量较大的表的设计往往是粗粒度的,也会冗余一些必要的字段,已达到尽量用最少的表、最弱的表关系去存储海量的数据。
并且在设计表时,一般都会对主键建立聚集索引,含有大数据量的表更是要建立索引以提供查询性能。
对于含有计算、数据交互、统计这类需求时,还要考虑是否有必要采用存储过程。
(5)、添加必要的(冗余)字段像“创建时间”、“修改时间”、“备注”、“操作用户IP”和一些用于其他需求(如统计)的字段等,在每张表中必须都要有,不是说只有系统中用到的数据才会存到数据库中,一些冗余字段是为了便于日后维护、分析、拓展而添加的,这点是非常重要的,比如黑客攻击,篡改了数据,我们便就可以根据修改时间和操作用户IP来查找定位。
(6)、设计合理的表关联若多张表之间的关系复杂,建议采用第三张映射表来关联维护两张表之间的关系,以降低表之间的直接耦合度。
若多张表涉及到大数据量的问题,表结构尽量简单,关联也要尽可能避免。