not null
声明禁止插入空值;check
子句限制属性域;CREATE TABLE "order"(...)
;xxx_id
、yyy_id
;create_date/update_date/sample_date
这些含义更明确的名称代替date这个命名,这样不仅表达更准确,而且避免了用关键字的麻烦;xxx_date
的形式,仅表示年月日用xxx_day
,仅表示时分秒用xxx_time
;xxx_count
,不要写为xxx_number/xxx_num/xxx_no
等;is_xxx
格式;bigint
;varchar
类型的字段,当字符串并不是非常明确到底限制是多少的时候,通常选择255这个长度,varchar(50)
并不比varchar(255)
节省空间,varchar(50)
仅仅是表示最多分配50个字符而已;varchar(100)
类型在PostgreSQL中代表100个字符,而在Oracle中代表100字节,具体的占用空间数目和语言、编码方式有关;is_deleted=true
来表示本条记录的业务上的删除,不要在数据库中真正删除记录,或者仅仅是版本化修改,这样能防止数据丢失;source: //changsiyuan.github.io/2016/05/06/2016-5-6-database-design/