在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型、游戏类型。。。)。对于这些类型的管理类似,如果为每一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想而之大,并且我们不得不去了解每一个类型表的名字,以去关联它。
因此,我们需要一种数据模型以完成对多种多样类型管理的需求。
字典表dictionary
| 
					 1 2 3  | 
						字段名           类型              是否可空     中文名             描述 dict_name     varchar(50)             no       字典名字     dict_value    int                     no        字典值             固定的,不变的  | 
					
字典数据表dictionarydata
| 
					 1 2 3 4 5 6  | 
						字段名             类型            是否可空        中文名                    描述 id                 int             no                                        自增长 dict_value         int             no              dictionary中的值           dictdata_name      varchar(50)     no              字典名字     dictdata_value     varchar(5)      no              字典值                    固定的,不变的 isfixed            int             no              是否固定                  0默认为不固定,1固定;固定就不能再去修改  | 
					
说明:dictionary中的dict_value和dictionarydata中的dictdata_value都是添加完不可变的,其它表的类型字段存取的是dictionarydata中的dictdata_value,在查询关联时,需要添加dict_value的约束(注:有人习惯存取dictionarydata中的ID,这样在查询时可以少加dict_value的约束。但是在系统的升级,或错误删除dictionarydata表时,后果将是空难性的,并且存取dictdata_value主表的类型字段简单明了,立即可以知道它是什么类型,所以建议存取dictdata_value)。
表扩展:对于现有的设计,如果需要类型数据需要简单的树形结构,可以在dictionarydata可添加parent_id;如果需逻辑删除数据时,可以添加iscancle;
最后,在程序中最好再建立两个类dictionary、dictionarydata里面定义整型变量对应于dict_value和dictdata_value值,这样在程序中就可以通过代码来引用类型数据。
