设计MySQL数据库的技巧
来源:asp之家 发布时间:2009-09-06 11:56:00
就MySQL而言,大多数程序员都不太了解其设计背景,因此当他们尝试创建自己的数据库时,会留下很多漏洞。
要想为MySQL数据库进行合适的配置,你的网络应用应该是有效且可靠的,因为它符合行业内设置数据库的标准。
如何MySQL数据库设计得很合理,我们会得到下面几个好处:
·速度——由于数据库效率很高且使用正确的数据类型和字符长度,那么查询速度就会得到相应改善。
·安全性——我们可以让特有数据保存在MySQL数据库中,所以安全性得到了改善。
·存储空间效率——由于你开发的数据库是完全基于数据说明的,那么在MySQL数据库中就不存在多余的字节和字符。这样就可以节省磁盘空间。
这篇文章将着重介绍如何为PHP网络应用设计一个MySQL数据库以及如何使用phpMyAdmin界面。下面是我们对程序员提出的几点要求:
·XAMPP,用于测试PHP脚本和访问phpMyAdmin。
·一系列域以及数据类型。要对需处理和保存的数据有比较完整的了解。
·要需要保存的数据中的字符数量。
请注意,本教程已经过MySQL 5.0.67的测试。不同的MySQL版本可能会影响数据库的设计,但是基本的原理还是相同的。本教程假定所使用的表格格式是MyISAM,它也是MySQL的默认表格。
为数据库,表格,域名和数据类型命名
为了帮助你了解整个过程,我们要结合实际操作来讲解。假设你需要设计一个接收客户投诉的网络应用。你可能会想到下面这些数据。每次出现与客户相关的投诉时,就需要从网络表单中收集这些数据。
·客户名
·价格。在小数点前不要超过4位数,小数点后仅保留3位数。同样保存的数值不能为负数。
·购买日期。(使用yyyy-mm-dd)
·产品序列号(仅限整数,不能为负,五位数,如果小于五位则用零代替)例如:00567,56453,00021。
·投诉细则(可接受任意长度的文本信息)。
·接收投诉的日期(显示表单提交时的时间和日期)
现在我们已经定义了需要收集的数据,下一步是为数据库和表格指定名称。
依据MySQL指导,我们知道数据库名称,表格名称和域名都不能超过64个字符的长度,而且其中还不能包含特殊字符。
我们可以将数据库命名为 “customercomplaint”,然后将数据库表格命名为“customertable”。名称越简单,在相关PHP脚本中就越容易使用。避免使用较难的或是较复杂的数据库名称,表格名称和域名,因为当你为数据库制定PHP查询时,复杂的名称会带来一些困惑
至于这些变量的对应的数据类型,下面的截图给出了一些可用的MySQL数据类型。
最常用的MySQL数据类型是VARCHAR, DECIMAL, DATE, INT, TEXT 和 TIMESTAMP。
VARCHAR通常用来表示最多为255个字符的变量长度字符串。如果你要储存和处理字母数字类的数据,这种数据类型是最合适的。适用于这类数据的典型例子包括人名,邮政编码,电话号码和不超过255个字符长度的任意字母数字组合。那些要用来计算的数字不要用VARCHAR类型保存,因为可能会导致一些与计算相关的问题。换句话说,可能影响到计算的准确性和完整性。
DECIMAL最适合保存那些将被用于计算的数据。在MySQL中,我们可以指定保存一些正当的数字。还可以指定是否允许存在负值。
指定DECIMAL类型的长度会有些棘手。例如,如果你需要在小数点前面保存五位数,且小数点后只保留三位,那么在数据库中其适当的长度将是:Decimal(5+3,3)或 Decimal(8,3),可以使用的数据包括:12345.678,56872.690,11.6和12.568等。而这些数字则会引发出错信息:128781.1,8972865.231。
建议用DATE数据类型来保存日期。MySQL中默认的日期格式是yyyy-mm-dd。
INT数据类型可以用来保存那些不包含小数点的数字。INT代表整数。
有些整数类型以及他们最多所能拥有的数字位我们必须有所了解:
·TINYINT——这个类型最多可容纳三位数。
·SMALLINT——最多可容纳五位数。
·MEDIUMINT——最多可容纳八位数。
·INT——可以容纳十位数。
·BIGINT——最多可容纳二十位数。
TEXT可以接受文本输入,VARCHAR只能接受255个字符,但是TEXT可以用来存储超量的数据。
当TIMESTAMP数据类型被选定,可以点击“CURRENT_TIMESTAMP”作为默认,MySQL会自动返回每个MySQL数据插入的确切时间。
猜你喜欢
- Microsoft SQL Server 2000的会话上下文信息使应用程序得以设置二进制值,以便在同一会话或连接上运行的多个批处理、存储过
- 模块化分页1.查询语句块<% 取得当前文件名 temp = Split(request.ServerV
- 今天因为做一个效果的时候需要CSS的定位来实现,于是我就根据自己原来对CSS的了解,用absolute和relative摆弄了好一阵子,总是
- HTML文档与CSS的关联常见有4种方式:1.使用link标记<link rel="stylesheet"
- 重读LukeW的《Web Form Design:Filling in the Blanks》感触很深,除佩服LukeW的钻研精神外,更多的
- <HTML><HEAD><TITLE>SQL Server 数据库的备份
- 问题:如何把具有相同字段的记录删除,只留下一条。 例如:表test里有id,name字段,如果有name相同的记录只留下一条,
- 前两天在帮朋友整理他的主页空间时候,发现的一点关于MySQL可能大家都会忽略的问题:我们知道,在安装完MySQL后,它会自动创建一个root
- //1、运行到C盘根目录 //2、输入:SET ORACLE_SID = 你的SID名称 3、输入:sqlplus/nolog 4、输入:c
- 如何在服务器端调用winzip命令行对上传的多个文件打包压缩?要解决这个问题,首先要了解一下Windows Scripting Host,简
- 对象Javascript 根本上是和对象相关的。数组是对象。函数是对象。对象是对象。那什么是对象呢?对象是名-值对的集合。名是字符串,值可以
- 最近在D4得到一本(美) Penny Mcintire写的《Visual Design for the Modern Web》.突然觉得可用
- 1.由于数据库设计问题造成SQL数据库新增数据时超时症状:Microsoft OLE DB Provider for SQL Server
- 偶然在Google发现了他们的用户体验设计原则,因此翻译作一下记录。1.以人为本 —他们的生活、他们的工作和他们的梦想2.珍惜每一毫秒的时间
- 在asp中调用sql server的存储过程可以加快程序运行速度,本文介绍了asp使用存储过程的方法。1.调用存储过程的一般方法 先假设在s
- 问题:在安装SP4补丁的时候,老是报验证密码错误。上网查了一下资料,发现是一个小bug。按照一下操作,安装正常。SQL Server补丁安装
- 数组使用简介原文地址:30 Days of Mootools 1.2 Tutorials - Day 3 - Intro to Using
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- 描述的意思是HTML为中心的前端开发也差不多是web标准的意思。1.HTML是基础2.CSS依靠选择符提供视觉;3.Javascript 依
- SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一