初次体验数据库设计

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

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

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

     先说我的最初的想法,很简单就是按照上面描述的关系,分别建立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他们的关系

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

下载前可以先看下教程 https://pan.quark.cn/s/a4b39357ea24 在网页构建过程中,表单(Form)扮演着用户与网站之间沟通的关键角色,其主要功能在于汇集用户的各类输入信息。 JavaScript作为网页开发的核心技术,提供了多样化的API和函数来操作表单组件,诸如input和select等元素。 本专题将详细研究如何借助原生JavaScript对form表单进行视觉优化,并对input输入框与select下拉框进行功能增强。 一、表单基础1. 表单组件:在HTML语言中,<form>标签用于构建一个表单,该标签内部可以容纳多种表单组件,包括<input>(输入框)、<select>(下拉框)、<textarea>(多行文本输入区域)等。 2. 表单参数:诸如action(表单提交的地址)、method(表单提交的协议,为GET或POST)等属性,它们决定了表单的行为特性。 3. 表单行为:诸如onsubmit(表单提交时触发的动作)、onchange(表单元素值变更时触发的动作)等事件,能够通过JavaScript进行响应式处理。 二、input元素视觉优化1. CSS定制:通过设定input元素的CSS属性,例如border(边框)、background-color(背景色)、padding(内边距)、font-size(字体大小)等,能够调整其视觉表现。 2. placeholder特性:提供预填的提示文字,以帮助用户明确输入框的预期用途。 3. 图标集成:借助:before和:after伪元素或者额外的HTML组件结合CSS定位技术,可以在输入框中嵌入图标,从而增强视觉吸引力。 三、select下拉框视觉优化1. 复选功能:通过设置multiple属性...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值