基本建表规范:
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='库存增减明细表';