数据库表的设计,可以按对象和按功能载体划分。如记录该对象哪些属性,然后就需要哪些字段。但是表的设计不能只考虑对象的单一性,因为表中肯定需要存储多个该对象,所以需要考虑附加属性,如时间,时间一般包括录入时间和执行时间。在人员记录时,不仅要记录业务逻辑处理者,同时应该记录录入该信息的人员名称。
多表之间的联系:多个表要用到同一个信息段,不建议在每个表中都存储该信息片段,建议只在该属性所属的原始类中存储该内容,其他表中存储该表中的行id即可。这样做的好处是当该内容做出变更时,不需要同时改变多个表,更改时方便。这样做的缺点是查询时必须同时关联多个表进行组合查询,量大时会影响查询时间。(但是个人觉得还是只存一次好,因为这样更能保证数据的正确性,唯一性,从而不用担心数据更新的同步操作失败时带来的灾难。)
关于用数字来标识的字段,一定要注释个数字的含义。(关于存数字好还是直接存数字的含义好,这个一直不是太清楚。首先是说在查询性能上的差异,在记录量不是特别大的时候应该查询数字和字符串的速度差异不大吧。如果是在含义定义的更改时,存数字的话,数据库就不用改变了,但是相应的要在逻辑判断时做出变更和部分页面显示时进行变更。存字符串的话,需要更改数据,逻辑处理需要更新,页面显示可能不用变动。具体该如何设定,期待高人解释,如果你有看法,看到本文请帮忙回复解答,谢谢!)
关于数据库的类型,一般来说根据将来需要存储的数据来判断用什么类型装载。很多人喜欢把时间类型定义成字符串类型来存储,这样的好处是:在存取时间的时候不用进行时间转换。缺点的话可能是时间的逻辑处理吧,具体等待高人解答,= =|||
关于字段的长度,根据存储信息来判断,考虑存储信息的最大值。(数据库的变长类型,会根据你存储的最大字符串来分配空间,所以便不是你定义了多长,就使用多大空间。)
数据库的命名,最好统一,要么都用拼音简写,要么都用英文解释。注意不要使用关键字