数据库设计案例及powerdesigner使用

mysql8.0版本

CREATE TABLE `t_baby` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '昵称',
`user_id` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户id',
`sex` tinyint(4) DEFAULT NULL COMMENT '性别:(0:未知,1:男,2:女)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,

KEY baby_user(`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10000000 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='xxx表';

1、编码格式统一为utf8mb4,COLLATE(排序规则)utf8mb4编码的默认值为utf8mb4_general_ci。

2、ROW_FORMAT统一为DYNAMIC,这样就能表示数据表是动态的,防止某些信息存放量过大的时候会报错。

3、在char、varchar字段添加字符集和排序规则:CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci

4、在创建时间的时候添加自动修改创建时间:CURRENT_TIMESTAMP

5、修改时间的话如果需求为只要变动数据就进行更改的话,那么添加:ON UPDATE CURRENT_TIMESTAMP

 

powerdesigner使用:

先设置physical options中的默认属性,在powerdesigner目录/Resource Files/DBMS/mysql50.xdb,这个文件中找到[%OPTIONS%]中的<a:TextTargetItem.Value>属性,

添加如下信息:

ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = InnoDB
DEFAULT CHARACTER SET = %s : list = utf8mb4 | gbk, default = utf8mb4
COLLATE = %s : list = utf8mb4_general_ci | utf8mb4_bin, default=utf8mb4_general_ci
ROW_FORMAT = %s : list = DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT, default = DYNAMIC

然后选中创建的表,在physical options选项中,将上诉4个选项移到右边即可。就会出现如下信息:

ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC 

字段自增:

编辑表中选择columns按ctrl+u,然后选择identity,这样就会显示出I的按钮,选中之后就能表示字段自增。

字段默认值:

如要设置default null或者time的属性的话,在columns选项中双击字段选择第三个选项里面有默认属性填写。

调出comment:

编辑表中选择columns按ctrl+u,然后选择comment

 

 

 

1、新建模型,然后选择Model Types中的Physical Data Model中第一个Physical Diagram,右边选择Table即可创建。

2、

 

posted @ 2019-05-23 20:39  曾饺  阅读(1134)  评论(0)    收藏  举报