问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何保证数据库结构的合理性(一、调整字段)

发布网友 发布时间:2022-04-09 18:15

我来回答

1个回答

热心网友 时间:2022-04-09 19:44

(一)调整字段 数据库中字段是表的基本结构部分,所以在调整整个表之前必须使得字段都是处于最好状态。很多情况下,字段的选择确定会减少很多给定表的已有问题,也能避免一些潜在的问题的产生。 1)字段名称的调整 字段描述的是表所描述的物体的特征。如果给字段一个合适的名称,就可以标识这个打算要描述的特征。一个有歧义的含糊不清的名称是一个麻烦的征兆,暗含这个字段的代表含义还没有真正明确下来。可以利用下面清单中的内容检查每一个字段名称。1.对整个组织来说,这个名称是否具有一定的说明意义? 要确保对于访问这个字段的每个人来说这个名称都是有描述意义的。语义有时候是非规则的,如果字段所用的词对于不同的人群来说语义不同,那就麻烦了。就好象在大部分地区,摇头表示的是“No”,而在印度,摇头则表示“Yes”。2.这个字段是否清楚没有歧义? 比如PhoneNumber就很容易让人误会。描述的是哪种电话号码?为了明确起见,如果需要记录每一种电话号码,那么应创建HomePhone、WorkPhone、CellPhone这样的字段。 另外还需要确保不会在不同的表中使用相同的字段名。如有必要,建议在相同的字段名称前面加上一个短短的前缀。比如,Vendors表中用VendCity,Customers表中用CustCity,Employees表中用EmpCity这样的名称。 总之,确保数据库中的每一个字段都有唯一的名称,在整个数据库结构中仅出现一次。除非这一字段被用来建立两个表之间的关联关系。3.是否使用首字母的缩写或者其他缩写形式作为字段名称? 如果有,请修改它!首字母的缩写很难解释,易被误解。使用缩写要非常谨慎,处理的时候也小心。如果对字段名称有一个信息的正向补充增强作用的情况下才使用缩写,缩写不能损害字段本身所表示的意义。4.是否使用了暗含或者明确标识多个特性的字段名称? 这种字段一般很容易发现,因为有类似于“and”或“or”这样的代表性字词。包含反斜线符号(\)、连字符(-)、与的记号(&)的字段同样也属于这一类型。如果发现这样的字段,检查所存储的数据,看是否需要将它们拆开成为更小的单独字段。5.确保字段名称的单数形式 字段所描述的是表所代表的物体的单一的特征,所以字段名应该是单数。而另一方面,表的名称之所以是复数,是因为它所描述的是同类对象或事件的集合。使用这一命名规则后,区分表的名称和字段名称就是一件很容易的事了。 2)消除粗糙的边 修正了字段名,现在就应该转而注意字段本身的结构了。虽然对字段的合理性已经有了相当的把握,但还是有几点需要继续努力来使字段结构尽可能更加合理高效。1.确保字段描述的是表所表示的物体某一特性。 这一步可确定字段是否真的属于这个表。如果它和这个表的关系并不密切,那就删除它。这个规则也有一个例外情况:这个字段是用来建立这个表和数据库中另一个表之间的关联关系,或为了完成数据库应用的某些任务而专门添加到表中。2.确保字段中仅包含一个单一的值。 一个字段可能会潜在地保存相同值的几个具体实例,这称为多值字段。同样地,一个字段也可能潜在地保存两个或多个各自不同的值,这称为多型字段。多值字段和多型字段会给数据库管理带来混乱,尤其是在对这些数据进行编辑、删除和排序时。当每一个字段存储的是单一值时,会对保证数据完整性和信息正确性有很大的帮助。3.确保字段所存储的内容不是计算结果或者一连串事件的结果。 一个设计良好的表中不允许出现计算列。主要原因是因为计算列的值本身。这里的字段,不像电子数据表格中的一个单元,不能保存一个具体的计算值。当计算表达式中的任何一部分改变,存储在字段中的计算值不会随之更新。唯一方式是手工修改或者编写代码年进行自动修改。然而,使用计算列的首选是在SELECT语句中结合使用。4.确保在整个数据库中一个字段仅出现一次。 一个普遍错误是向数据库中的好几个表插入了相同的字段,那就会面临数据不一致的问题。此时,改变了一个表中的这个字段而忘记了对其他表中的相同字段进行相同的修改,就会出现数据的不一致。避免这个问题的方法微十时毫 确保整个数据库结构中一个字段仅出现一次。(此规则的例外情况是用某一个字段来建立两个表之间的关联关系。) 3)多型字段的处理 识别多型字段可以先回答一个简单问题:是否能将当前字段的值分解成更小的独立的几部分?如果回答“是”,那么这就是一个多型字段。 比如Customers表中有这个一个字段StreetAddress,里面的记录为“15127 NE 24th ,#383 ,Redmond ,WA 98052”。这个字段就可以拆分为CustAddress、CustCity、CustState和CustZipcode,分别存储15127 NE 24th 、Redmond、WA和98052。下面是书中调整前和调整后的表:调整后: 有时候可能识别一个多型字段是比较困难的,比如Instruments表中有这么一个字段IstrumentID,里面存储了GUIT2201、MFX3349、AMP1001、AMP5590、SFX2227和AMP2766。乍看好象不是多型字段,仔细查看就会发现,此字段的值中包含了两个不同的信息:设备所属的类别——如AMP(amplifier,扩音器)、GUIT(guitar,吉他)和MFX(multieffects unit,音效组合)——以及这些设备的标识号码。这两个值应该分开保存在各自的字段中,以保证数据完整性。下图是Instruments表: 4)多值字段的处理 多值字段的处理比多型字段相对困难一些,但是值得庆幸的是,多值字段一眼就能识别出来。几乎毫无例外的,这一类型字段存储的值包含许多逗号,逗号用来分隔字段中值的不同部分。 在对多值字段进行处理之前,要先明白最初想要赋予的多值字段和表之间的关系。多值字段的值和其父表中的记录是M:M的关系:一个多值字段中的某一个确定的值和父表中的多个记录相关,父表中的一个记录和多值字段中的多个值相关联。处理这种多对多关系和其他多对多关系的方法一样——用一个关联表。 要创建关联表,使用多值字段并复制原来表中的主关键字作为建立新表的基础部分。给这个新的关联表一个合适的名字,并指定这两个字段为其组合主关键字。(这种情况下,组合两个字段中的值就能惟一标识新表中的每一个记录。)然后就可以在一对一的基础上对新表中的两个字段关联了。 比如现在有Pilots表,表中有三个字段PilotID、PilotName、Certifications,有两个记录分别为:25100、John、727,737,757,MD80;25101、David、737,747,757。很注意到Certifications是一个多值字段(存储的值包含了逗号),先将Certifications从Pilots表中删除,然后将根据Certifications的内容新建Certifications表,Certifications表中有如下字段CertificationID和TypeofAircraft,包含记录如下:8102、Boeing 727;8103、Boeing 737;8104、Boeing 747;8105、 Boeing 757;8106、 McDonnell Douglas MD80。接着,在创建一关联表,比如Pliot Certifications表,表中的字段分别为Pilots表的主键PilotID和Certifications表的主键CertificationID。 为了方便,上面的例子是我简化过的,下面是书中的例子: 调整前的表:调整后的表:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 煮熟的木耳隔夜还能吃吗 求一篇以春节为题目的作文,自述在600~800字之间.谢谢了 .._百度知... 华为麦芒6支持5G吗 春节家庭聚会作文600字 春节吃团圆饭,拜年的作文450字 春节吃饭作文大全 一个女的给男友做计划生育手术时掉下楼穿越后女主叫晓晓! 求女尊多夫,女强,男生子,完结小说,女主最好是王爷或太女或女皇,夫君最好5~10个,男主最好很强大 索尼微单怎么充电好?是吧电池拿出来用充电器充电还是直接在相机上充电?知道的人士回答 sony5000微单怎么充电 谁给我推荐几本女尊穿越小说和一些悬疑灵异的小说呗,我不要看那种什么废材小姐那种的,谢谢啦 小米手机的移动充电器可以为索尼A7R3微单充电吗 sony相机可否使用手机充电器充电 求完本女尊虐男小说 苹果的数据插头和安卓的数据线混用可以吗? 套餐外的业务如何取消 女主穿越女尊国 5t索尼相机数据线和其它数据线能通用吗 在《西游记》第75回中,孙悟空大意的后果是什么 谁有女尊文和穿越到仙剑世界的言情小说 手术时鉴别胃与十二指肠分界的标志是什么 小号怎么给大号充Q币 《样》是什么生肖 样是指什么生肖 玫瑰小镇小号的Q币最大利用? 我的Q币在我小号上,如何转入别的QQ里? (样)字猜一生肖?备注~解释一下。 一模一样。是什么生肖 怎么把Q币从一小号转移到大号? 十二生肖一个样是指哪个生肖 英雄联盟 英雄联盟可以用小号的Q币给大号冲点卷吗? 十二生肖十二样是什么生肖? 样,是什么生肖? 酒感悟人生的说说 游戏明星大乱斗解压密码,不知道在哪下载的还能咋办 十二生肖各式各样是什么肖? qq小号账号异常,领不了q币 有模有样的生肖是什么生肖 Q币怎么转账?想把小号里的Q币转到大号里,该怎么做?急!谢谢! 一模一样是形容什么生肖?