博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
毕业论文时遗留的两个小问题
阅读量:5107 次
发布时间:2019-06-13

本文共 859 字,大约阅读时间需要 2 分钟。

  回想一下,一年前从学校毕业,当时自己觉得自己本事不小,差点鼻孔朝天,有点眼高手低。当时毕业答辩的时候,那个答辩老师是个山东人,口音不是很清楚,提出了两个问题,一个是数据库和数据仓库的区别,另一个是学生的主键你是如何保证不能被另一个学生修改了。

现在突然想到了这两个问题,结合自己这一年来的工作经验,做出以下回答,希望能过关吧。

  1.关于数据库和数据仓库

  数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

  2.关于主键问题:

  数据库学生数据的主键是学号,这个是教务处生成的,一般不会被修改和删除,有较好的唯一性,所以用它来当做学生的主键。
  在学生的界面,从数据库根据学号查询出的结果,学生只能查看到自己的信息,并进行修改,没有删除自己信息的权限。如果学生查看到了非自己的数据,他应该向管理员进行反馈。可能由于种种原因他进行了修改,数据库中的数据也就随之修改了,那该怎么办呢。这个时候就要引入一个操作记录表了。主键id自增列,记录操作的sql语句和内容(即操作类型和内容),更重要的是记录操作时间和操作人,为以后管理员方便查询操作记录,如果有精力还可以在管理员界面做出一个查询页面,展示操作记录。还可以在学生界面,存储登陆人的信息作为session,每次操作的时候,可以匹配学号主键和登录人(操作人)的学号是否一致,不一致的时候要弹出警告栏,不能进行修改,甚至强行退出登陆。
  在管理员界面,由于有了操作记录表,可以方便的查询到每次操作的记录,防止个别人的不认账行为,另外管理员也不能进行删除操作记录。如果本事过大,还可以做出一个功能为查询最近几次的操作记录,可以左右对比每次更新的内容和操作人来。

转载于:https://www.cnblogs.com/Lvkang/p/9473140.html

你可能感兴趣的文章
centos 7 redis-4.0.11 主从
查看>>
博弈论 从懵逼到入门 详解
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
视频:"我是设计师"高清完整版Plus拍摄花絮
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
iframe跨域与session失效问题
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>