技术开发 频道

设计MySQL数据库的技巧

  确定数据库的设计规格

  现在我们已经了解不同的MySQL数据类型以及数据库和表格的命名规则,那么我们可以确定网络应用的数据库设计规格了。这里强烈推荐你在递交查询前将这些规格写到纸上或者用Word文档记录数据库结构。

  下面是一些推荐的规格:

  1. 第一个数值域:

  要收集的数据:客户姓名

  推荐域名:customername

  MySQL数据类型:VARCHAR

  允许的客户名最大长度:64

  2. 第二个数值域:

  要收集的数据:价格

  推荐域名:price

  MySQL数据类型:DECIMAL

  小数点前最多允许位数:4

  小数点后保留到3位

  最终的小数位长度:DECIMAL(4+3, 3) 或者 DECIMAL(7, 3)

  不允许出现负值

  3. 第三个数值域

  要收集的数据:购买日期

  推荐域名:datepurchased

  MySQL数据类型:DATE

  最大长度:不可用

  4. 第四数值域

  要收集的数据:产品序列号

  推荐域名:productkey

  MySQL数据类型:SMALLINT

  该变量的最大长度:5

  其他属性:少于5时用0填补,不允许出现负值

  5. 第五数值域

  要收集的数据:投诉细则

  推荐域名:complaintdetails

  MySQL数据类型:TEXT

  最大字符长度:取决于用户的输入情况

  6. 第六数值域

  要收集的数据:投诉受理日期

  推荐域名:reveivingdate

  MySQL数据类型:TIMESTAMP

  其他属性:为Current_Timestamp设置默认值,这样它便可以记录投诉的确切时间。

  用phpMyAdmin为MySQL输入规格

  我们现在要用phpMyAdmin图形界面将上述规格输入到MySQL环境中。具体步骤如下:

  1. 用MySQL用户名和密码登录phpMyAdmin。

  2. 点击“数据库”链接,在“创建新数据库”部分中输入customercomplaint。

  3. 在创建新表格中输入customertable,且在域的数量中输入6。

  用上述设计规格来配置数据库中的变量。看下面的截图:

 

  不要忘了检查receivingdate域中Default栏目下的Current_Timestamp。Unsigned意味着只能接受正值。Zero Fill意味着空白区域会以0来填补。例如,如果产品序列号为456,MySQL会将其保存为000456。创建指定表格的详细MySQL查询如下:

 

  CREATE TABLE `customercomplaint`.`customertable` (

  `customername` VARCHAR(
64 ) NOT NULL ,`price` DECIMAL( 7, 3 ) UNSIGNED NOT NULL ,`datepurchased` DATE NOT NULL ,`productkey` SMALLINT( 5 ) UNSIGNED ZEROFILL NOT NULL ,`complaintdetails` TEXT NOT NULL ,`receivingdate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

  ) ENGINE
= MYI

 

  所有的部分都设定好后,点击“保存”。然后就可以向新设计的数据库中插入数据了。你会发现,数据库只接受符合设计规格的数据,而出现不符合规格的情况时会弹出错误信息。

0
相关文章