數據字典表——存儲Web頁面的常用數據信息
問題:
在平時的Web應用中,我們經常會看到一些單選的下拉列表,比如:用戶注冊時的密碼保護問題下拉框、入學年份下拉框等等許多。這些下拉列表的內容經常會改變,比如說修改了一個密保問題、添加了一個入學年份等等。
如果所在html頁面中添加或修改一個<option></option>的話,這就修改了代碼,違背了擴展原則,所以直接修改代碼是不可取的。既然內容是可變的、可修改的,那么就應該考慮將這些信息存放到數據庫中。這樣的話,要想修改或添加內容直接在數據庫中做,這樣就不用修改頁面代碼了。
解決思路:
既然讓那些存放到數據庫中,那么怎么設計表呢?考慮一下,像用戶密碼保護問題、入學年份之類的數據,如果每種不同信息都存放到不同的表里,那么建的表就會很多,而每張表中的數據又不多,這樣太浪費數據庫空間了。所以可以考慮將這些數據信息都放到一個表里,用一個字段來區別不同類別的數據信息,這樣就可以節省表空間,同時也能正確分辨這些數據。
建表sql語句如下:
/*==============================================================*/
/* Table: DATA_INFO */
/*==============================================================*/
create table DATA_INFO (
ID CHAR(3) not null,
NAME VARCHAR2(30) not null,
TYPE CHAR(1) not null,
constraint PK_DATA_INFO primary key (ID)
);
comment on table DATA_INFO is
'數據字典';
comment on column DATA_INFO.TYPE is
'A:分銷商類型——一級分銷商、二級分銷商、三級分銷商;
B:終端客戶類型————醫院、葯店、診所;
C:物料類別————>西葯、中葯;
D:計量單位';————>盒、袋、瓶;
這樣就可以很好的存放一些公用數據,用一個字段type來區分它們。如果還要添加一條數據,比如添加一條計量單位:箱,則可直接插入一條記錄即可:insert into DATA_INFO values(’D04’,’箱’,’D’); 到此就完成了表的設計,如果以后還有其他數據信息加進來,如’家鄉’信息這也可以加一條記錄,用不同的type用以區別。這樣在頁面中,可以根據不同的類別來取出信息,這樣就可以不用修改代碼了,帶到了擴展的目的。