数据库设计初学时的感受

来源:互联网 发布:js实现原生下拉菜单 编辑:程序博客网 时间:2024/05/22 09:35

data类型sql server中式没有的,而datatime是其对应的数据,但有time数据类型。

 

 

细心的人会发现,如果你在数据库上“新建查询”但不保存这些这些查询,只是关闭,你再次点击“新建查询”的话,你会发现查询的序号会自动加上SQLQuery2...n.sql.而对于很多程序员来说这是不可忍受的,因为我没有保存,它却自动加一,这造成了一种错觉就是有些垃圾文件,这些感受是不可忍受的。但你右击标签页,如下图所示

打开所在的文件后看到是tmp文件。这说明这个只是暂时的。果然我重启过控制台以后再次从SQLQuery1.sql开始标号了。

 

 

                                             foreign key外键约束和级联更新和级联删除的使用。

有很多人认为增加了外键约束造成数据表结构的耦合度加强,所以不建议设置外键。相信有经验的数据库开发人员和管理员都明白这样做的后果。在这里讲讲为什么加外键。

外键嘴主要的功能是防止出现意外数据。比如大学中一个学生必须注册班级,不存在不注册班级的学生,每一个学生都必须有隶属的行政班级。所以这时候就必须使用外键了,使用外键保证学生的班级号(studentsInfo.classID)肯定是学校设定的班级号(classInfo.classID)。如果没有使用外键,一个误操作就可能出现在studentsInfo表中一个学生的注册班级不是他们学校规定有的行政班级。这是多么可笑的事。

对于上述情况可以使用   tb_studentsInfo.classID nvarchar(10) foreign key references tb_classInfo(classID)   语句,将students的classID列的值联系到classInfo表的classID列的值。但是现在又出现一种情况,就是11级的学生都毕业了,要在数据库中将11开头的班级都删除了。而所有11级的学生信息表中都引用着'11%'开头的班级号,在没有开启级联更新和级联删除的情况下,你就要手动将这些学生信息中的内容都删除,接下来才可能在行政班级表中将'11%'开头的班级删除。这是多么恐怖的工作。

而级联更新和级联删除就是为解决类似这种工作而设计的。当你删除主表(classInfo)中classID值以'11%'开头的一行数据时,所有引用'11%'开头的从表中的记录都会被同时删除。这就轻松多了。而这也符合实际情况,你想想班级都没有了,哪里还有注册该班级的学生?

 

虽然外键增加了数据的耦合度,但是这也正是现实数据关系所表示出来的。所以对设计数据库来说不能只看耦合,而相反,设计的数据要完全反映实际意义数据的关系,只要是符合现实那么在高的耦合也要放一边。

原创粉丝点击