基本建表规范: 1.自增主键一般都需要设置(`id` int unsigned NOT NULL AUTO_INCREMENT); 2.不定长字符串长度使用varchar类型,需要考虑实际业务最长长度的基础上扩容20%到40%为宜,且长度取2的指数长为宜(64,128,256等); 3.定长长度使用char类型,长度直接取实际长度即可,类似于手机号字段; 4.所有字段除了软删除字段(delete_time),都需要设置为not null,并且设置默认值(字符串默认值为'',整型默认值为0); 5.基本所有的字段,表名都加上备注,除了自增主键,创建时间,更新时间之类的通用字段。 6.表结构需指定存储引擎,默认字符集。 7.关于索引的创建,建议只创建其它表在这个的表的外键和查询频繁的字段。其它字段在业务扩展时我会及时跟进并设定。 8.表名和字段名以英文加下划线隔分,字段中英文单词以不超过三个单词为宜。 兼容爱到家过去的习惯: (1)状态字段设置为tinyint,同时备注写清楚不同数字代表的类型。 (2)时间字段都是存时间戳,以整形为宜。 建表时具体是用二范式还是三范式视情况而定,如果有不同意见的可以讨论商定。 建表范例: CREATE TABLE dc.`inventory_detail` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `product_id` int NOT NULL DEFAULT '0' COMMENT '产品Id', `code` varchar(32) NOT NULL DEFAULT '' COMMENT '产品编码', `product_name` varchar(128) NOT NULL DEFAULT '' COMMENT '产品名称', `purchase_amount` int NOT NULL DEFAULT '0' COMMENT '采购录入数量', `purchase_note` varchar(512) NOT NULL DEFAULT '' COMMENT '采购备注', `create_time` int NOT NULL DEFAULT '0' COMMENT '采购录入时间', `reserve_time` int NOT NULL DEFAULT '0' COMMENT '应到库时间', `receive_amount` int NOT NULL DEFAULT '0' COMMENT '仓库入库数量', `receive_note` varchar(512) NOT NULL DEFAULT '' COMMENT '入库备注', `receive_time` int NOT NULL DEFAULT '0' COMMENT '仓库入库时间', `update_time` int NOT NULL DEFAULT '0' COMMENT '更新时间', `type` tinyint NOT NULL DEFAULT '1' COMMENT '记录类型(1手动加库存,2手动减库存,3系统减库存)', `record_status` tinyint NOT NULL DEFAULT '1' COMMENT '记录状态(1创建,2完成)', PRIMARY KEY (`id`), KEY `code` (`code`), KEY `product_name` (`product_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='库存增减明细表';
浙公网安备 33010602011771号