在稍大一些的項目中,我們總是需要管理各種各樣的類型類型數據(如商品類型、游戲類型。。。)。對於這些類型的管理類似,如果為每
一種類型都建立一張表去維護(而在項目中,正常出現50種類型),那工作量是可想而之大,並且我們不得不去了解每一個類型表的名字,
以去關聯它。
因此,我們需要一種數據模型以完成對多種多樣類型管理的需求。
字典表dictionary
字段名 類型 是否可空 中文名 描述
dict_name varchar(50) no 字典名字
dict_value int no 字典值 固定的,不變的
字典數據表dictionarydata
字段名 類型 是否可空 中文名 描述
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值,這樣在程序中就
可以通過代碼來引用類型數據。