`

初次体验数据库设计

阅读更多

     今天初次了解了数据库的设计,体会到了数据库的设计的重要性。这是在工作中遇到的。

就是把学校里教师、年级、班级还有学科映射到数据库中。

     首先先说下这几个表的关系,很简单,教师对年级还有班级是多对多关系,教师对学科是多对一关系。

     先说我的最初的想法,很简单就是按照上面描述的关系,分别建立teacher,grade,class,subject四张表。

grade,class,subject表字段就是包括各自的信息。teacher表呢,有个teachername和subject_id,然后还有2个中间表grade_join_teacher和class_join_teacher分别来存放grade和teacher以及class和teacher的信息。这样的关系很直接,估计像我这样的新手都会这样想。可能是我对数据库理解不深,我觉得这样的多对多关系用hibernate来管理时,会遇到点麻烦的问题,比如说要删除teacher时,不能删除grade吧。或者只是把他们之间的关系删掉也就是只是删除中间表的信息等(这些也是之后要研究的一个问题)。在做这些操作的时候会比较麻烦。

   好现在来看看另外的设计,和上面的一样,grade,class,subject没有变,唯一变的是teacher表的字段,teacher表有teacherName,grade_id,class_id,subject_id。也许你一看这个可能差异,这样不是多对一吗。呵呵~其实那是理解错了,这个teacher表不是我们传统上的teacher~这个teacher表可以理解为教某班某年级某课程的教师。注意这里的teacher表的teachername是会有重复的,也就是说同一个教师的姓名可能会出现多次(假如这名教师是交多个班级的话)而第一种设计的teacher就是单是所有的老师,不允许同一个教师的姓名出现二次。这样第二种设计就不存在多对多的关系存在,teacher表和其他的三表都是多对一的关系。比第一种维护起来会好点。

    其实就是看问题的角度不同了,第一种呢是先将现实的每一个对象都在数据库建立一个对应的表。然后在更加现实的关系建立表与表之间的关系。而第二种呢是先考虑现实的每一个对象的关系,像本文中说的teacher,grade,class,subject。应为通过grade,class,subject的一个组合就可以确定一个teacher,这样将所有的grade,class,subject组合一边就可以得到所有的teacher。而且也无形中建立了teacher,grade,class,subject他们的关系

有点反过来的感觉。所以以后要多反过来想想。也不知道这样的设计叫什么名字。

分享到:
评论

相关推荐

    月儿猫猫ASP生成HTML全站静态客户体验专业版.rar

    3.经过初次生成后所有静态页面都可以自动同步更新信息啦...您只需要后台发布您的信息,前台所有页面均自动更新从新生成HTML页面,前提是页面被访问,访问一次更新一次... 4.点这里进行登陆设置

    php项目源码_[主机域名]雨过星晴二级域名系统v1.0_xydns10.rar

    5. 良好的用户体验:简洁直观的界面设计,人性化的操作流程,让即使是初次使用也能快速上手。 6. 可二次开发定制:系统提供丰富的API接口和插件机制,方便开发者进行二次开发和定制,满足特定需求。 总之,【主机...

    recipeas-and-greens:Code Institute的第三个里程碑项目。 社区食谱网站

    用户体验(UX)用户故事:初次访问者: 作为第一次来访,我希望看到一系列详细介绍成分和制备方法的食谱。 另外,我想知道每个特定食谱的难度级别,其准备和烹饪时间以及每个食谱的类别。 我希望每种食谱的设计都...

    收获不知Oracle

    第2章震惊,体验物理体系之旅 13 2.1 必须提及的系列知识 13 2.2 物理体系从老余开店慢慢铺开 16 2.2.1 老余的三个小故事 16 2.2.1.1 顾客的尺寸 16 2.2.1.2 有效的调整 17 2.2.1.3 记录的习惯 18 2.2.2 体系结构...

    YiDaCms免费开源企业建站系统最新官方版

    并以其众多独创或领先的新特性和功能设计,使得用户深刻体验到易达以原创研发、服务客户为主导开发理念的独到之处和领先优势。 易达严格上讲是为懂点网站HTML代码或DIV+CSS代码的技术人员而开发的一套专门用于企业建...

    YiDaCms企业建站系统 X2.5 build130901

    初次使用易达CMS企业级建站系统以下简称(易达),易达系统运行于微软公司开发的 ASP 程序平台,ASP是目前国内应用最广泛的WEB开发语言,空间基于微软windows IIS,使您的购买空间和维护成本降到最低,并以其众多独创或...

    易达CMS企业建站系统 v2.2版

    空间基于微软windowsIIS,使您的购买空间和维护成本降到最低,并以其众多独创或领先的新特性和功能设计,使得用户深刻体验到易达以原创研发、服务客户为主导开发理念的独到之处和领先优势,易达严格上讲是为懂点网站...

    易达(Wap)手机建站系统 v2.1 20140408

    初次使用易达CMS手机建站系统以下简称(易达WAP),易达WAP系统运行于微软公司开发的 ASP 程序平台,ASP是目前国内应用最广泛的WEB开发语言,空间基于微软windows IIS,使您的购买空间和维护成本降到最低,并以其众多...

    YiDaCms开源企业建站系统V20130718

    并以其众多独创或领先的新特性和功能设计,使得用户深刻体验到易达以原创研发、服务客户为主导开发理念的独到之处和领先优势。 易达严格上讲是为懂点网站HTML代码或DIV+CSS代码的技术人员而开发的一套专门用于企业建...

    易达(Wap)手机建站系统 v1.1 20130901

    空间基于微软windows IIS,使您的购买空间和维护成本降到最低,并以其众多独创或领先的新特性和功能设计,使得用户深刻体验到易达WAP以原创研发、服务客户为主导开发理念的独到之处和领先优势。 易达WAP严格上讲是为...

    易达(Wap)手机建站系统最新官方版

    使您的购买空间和维护成本降到最低,并以其众多独创或领先的新特性和功能设计,使得用户深刻体验到易达WAP以原创研发、服务客户为主导开发理念的独到之处和领先优势。 易达WAP严格上讲是为懂点网站HTML代码或DIV+CSS...

Global site tag (gtag.js) - Google Analytics