关于数据库的设计,由于自己还是新手,并不太了解过多的规则以及什么模式,总之个人见解,最重要的是表与表之间的联系,字段的设计多少其实无所谓,总之最好是少一些表,表越少越容易作查询。
每个表的每一条数据以id作为唯一索引,依靠id进行表与表之间的联系。除去功能表,还有作为一个管理系统必备的表,角色表,权限表,日志表,资源表等等一系列。
仔细分析各个功能中的共同数据,以及各种数据之间的联系。这是建立好的数据库的关键,
除此之外,由于项目不是一个人做,是通过git进行分工协作的,所以表的注释,以及每个字段的备注是必不可少的。
然后是字段的类型,SQL Anywhere支持的数据类型包括:
整数(int, integer, smallint,bigint)
小数(decimal, numeric)
浮点数(float, double)
字符型(char, varchar, long varchar)
二进制数据类型(binary, long binary)
日期/时间类型(date, time, timestamp)
然后是字段的命名,字段名可以是字母、数字或符号的任意组合。然而,如果字段名包括了字母、数字或下划线、或并不以字母打头,或者它是个关键字(详见关键字表),那么当使用字段名称时,必须用双引号括起来。
NULL与NOT NULL
如果一个字段值是必填的,你就将此字段定义为NOT NULL。否则,字段值可以为NULL值,即可以有空值。SQL中的默认值是允许空值;你应该显示地将字段定义为NOT NULL,除非你有好理由将其设为允许空值。
关于NULL值的完整描述,请见“NULL value”。有关其对比用法,见“Search conditions”。
选择约束
尽管字段的数据类型限制了能存在字段中的数据(例如,只能存数字或日期),你或许希望更进一步来约束其允许值。