数据库设计心得

一个类型字段如果使用int类型,那么类型标识最好从1开始

例子:

ALTER TABLE bx_message/*表名*/ADD COLUMN `SendChannel`/*字段名*/ int(4)  NULL COMMENT '发送渠道 0:PC端 1:微信端  2:短信';

SendChannel的类型是int,它的标识是从0开始的,这样带来的问题就是,我在使用mvc的模型验证时(Required)没有传SendChannel参数,但是他是int类型的,会默认是0,Required是通过的。

解决:

改成从1开始的,代码如下,这样不传SendChannel时默认为0,我在添加Range验证就可以了。

ALTER TABLE bx_message/*表名*/ADD COLUMN `SendChannel`/*字段名*/ int(4)  NULL COMMENT '发送渠道 1:PC端 2:微信端  3:短信'; 

表和表直间的关联问题

  • 表和表之间的关联一定要通过主键
  • 主键最好是自动生成的,用户不可以修改

原因:手机号登录,更换手机号问题

假如数据库是手机号做主键,用户表和其他表的关联也是通过手机号,这样用户在修改手机号时就需要修改跟用户表关联的所有表。

要是使用系统生成的主键,这样修改手机号只需要修改一张表就行

posted @ 2017-04-11 16:46  taohonggou  阅读(142)  评论(0编辑  收藏  举报