数据字典表——存储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用以区别。这样在页面中,可以根据不同的类别来取出信息,这样就可以不用修改代码了,带到了扩展的目的。