手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

精通MYSQL数据库——连载十一

首页 > Baby >

一个好的数据库设计应该符合以下几点要求:
1、数据表里没有重复冗余的数据(如果总是往里面插入同样的数据,那应该是设计上有问题,当然现在在利用空间换时间的时候,多数人还是保留了这样的想法)
2、数据表里没有column1,column2,column3……这类没有明确意义的字段,因为这样会让后来人摸不清头脑
3、数据表占用的空间越小越好
4、使用频率高的数据表的查询,应该都能以简单高效的方式执行(表内数据少的时候,你就是10几个left join,你可能都感觉不出什么,但数据量一大,你一个left join都会让你感觉到速度慢下来,如果最初设计时没有满足这个要求,那么,以后想改可能也没有机会了)
这些也只是一些总的原则,也只是简单的介绍,以后会详细说明,当然上面这几点并非完全正确,就象第三范式,这是一个标准,但这个标准真的就是最好的吗?并非如此,但我们现在是在讲设计数据库,它好不好,目前不讲。以后一起讨论

为MYSQL的数据库和数据表甚至字段起名字还是有讲究的,最重要的是,千万不要使用保留关键字,而且有一些单词很奇怪,在4.0里面并不是关键字,但升级后,却变成了关键字。
详细的关键字列表请看:MYSQL手册中保留字部分
对于一个完整的设计应该注意以下几项:
1、由于MYSQL对数据列的命名不区分大小写,而对库名和表名区分大小写,因此为了规范和统一,请使用同样的规则,不要象程序代码那样来个骆驼命名啥的,这样只会给开发带来困难,建议是全部采用小写,移植、升级都方便
2、不要采用特殊字符或者中文,MYSQL对于多字节的处理并不十分完美,虽然支持中文建库、建表等,但实在不建议使用,如果你的服务器对中文支持不好,可能建库的时候就会是乱码,字段里,明明看到有值就是查不出,所以,为了规范,还是采用英文,26个字母的排列组合,没有那么复杂的。
3、数据库、表、字段的长度请不要超过64个字符,
4、表名和数据列名,请尽量采用有意义的名称,不要出现上文提到的那种column1,colnmn2之类的,时间长了,你自己都可能不知道是什么意思
5、给字段命名,需要有规范,因为这样会减少粗心带来的错误,比如username,user_name,如果分在各个表里,恐怕你每次写程序的时候,都得再检查一遍吧?对于由多个单词组成的字段,要么全部加下划线,要么全部不加,这样也比较有利于开发和维护
6、数据列的单复数,原因和5一样,要么全部单数,要么全部复数,一会单数一会复数的,开发和维护的时候,你就得盯着数据表来进行了。

数据库的设计是一件很复杂的事情,要在短时间内把一批数据分割开,并存储到数据库中,还得为开发人员提供足够的优化空间,不是一天两天就能完成的,当然现在有很多这样的工具,比如powerdesign(PD),在设计完后,还能导出数据库,确实是挺方便,但这样的软件,价格就太高了,不是我们所买得起的。
平时,我们还是使用WPS的电子表格,或者openoffice的电子表格功能,设计好数据表(电子表格最大的好处就是有几乎无穷的sheet,可以让你把一个很大的库放在这些sheet里),而且,几乎每台电脑上都会有这样的工具,便于交流。这样可以在最初的阶段对于一些数据列进行安排(没办法建立索引的,只是简单的用来布局,检查设计上是否有缺陷)

对于管理MYSQL,也有很多工具,比较常见的,就是:phpMyadmin;MYSQL自已也提供过,好象是mysqlFront?记不太清,现在我自己用的是navicat for mysql lite ,不用钱的东西都是好的。虽然在国内,大家都了解软件业的行情。自己也处于软件业的下游,能够使用正版,还是使用一下正版吧。不能使用正版的,找找免费版。
在我看的书上,它介绍说openoffice里其实还隐藏着连接数据库这个功能的,而且可以能够象创建视图一样来创建SQL,这个功能不错,我以后要好好看看,如果确实有用,那我WPS也不装了,直接使用openoffice。
不过,最常用的,最方便的,还是使用phpmyadmin,它实在是居家旅行、杀人灭口之大杀器。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: mysql, 精通, 数据库, 连载

« 上一篇 | 下一篇 »

只显示10条记录相关文章

紫狐浏览器教程 (浏览: 47530, 评论: 4)
jQuery的html()等方法介绍 (浏览: 47021, 评论: 1)
mongodb删除索引 (浏览: 39954, 评论: 0)
将Yiiframework与JQuery easyUI整合使用 (浏览: 39657, 评论: 2)
在mysql 里实现查询汉字的拼音首字母[摘] (浏览: 37511, 评论: 4)
MySQL各存储引擎(INNODB,MyISAM等)的区别及其启动方法 (浏览: 36115, 评论: 0)
MYSQL索引之小小分析 (浏览: 34884, 评论: 3)
[分享]VIM操作指令的壁纸 (浏览: 34718, 评论: 1)
MySQL 5 中 blob 类型字段的插入[转] (浏览: 34678, 评论: 0)
用TIMESTAMP类型取代INT和DATETIME[转] (浏览: 33654, 评论: 1)

3条记录访客评论

竟然还有空看片子呀,真是太幸福了

Post by mpeg on 2008, October 4, 2:38 PM 引用此文发表评论 #1

今天我会尽快审核,黑黑

Post by gouki on 2008, October 3, 7:25 AM 引用此文发表评论 #2

功夫小子-金米,一休,葫芦兄弟,大闹天宫,黑猫警长,没头脑与不高兴,米老鼠和唐老鸭,猫和老鼠,希曼,希瑞,布雷斯塔警长(熊的力量啥的,还有那匹马,塞拉冏),太空堡垒(现在还可以搜索到林美的那首:可曾记起爱),变形金刚(如果不说这个会被骂的吧),铁臂阿童木,蓝精灵(格格巫,黑黑),佐罗,国王与小鸟(好象国内的翻译名是:扫烟囱男和牧羊女?一部还是两部?记不清了),大力水手等等
后来者补上,呵呵

Post by gouki on 2008, October 3, 7:24 AM 引用此文发表评论 #3


发表评论

评论内容 (必填):