字典表,是提供项目中一些字段的值,比如某个省的城市列表,或者海洋排污口的类型,等等。其作用,类似于系统开发过程中的数据字典,除了供查阅、备忘外,主要还是为了统一口径和标准。字典表就是将这些统一口径值(标准值)存储下来,供程序读取。
最典型的表现,就是页面中的下拉框。这些值从哪里来?就应该从字典表中读取。否则,要么是直接写死在前端页面,但就有个与服务器端保持一致的问题;要么还是从服务器端返回,但变成写死在服务器端,这样用户就不能再修改和维护了。
字典表就有这么个好处,将选项存储在数据库,服务器端读取后返回给前端,保持了一致性;同时提供界面,用户可以维护。两全其美。
一、字典值修改问题
如果字典表的值修改了怎么办?
修改了就修改了。别的下拉框值提供方式,一样会有值修改的问题。如果想减低值修改带来的成本,可以采用code和text的方式。比如下拉框,是一个select选择器,
code修改的机率小一些,text修改的机会大一些。我们拿到下拉框值后,保存这个code,text只是用于展示。
但不是所有情况都适用,有code和text相同的情况。比如选城市,code和text应该都是城市名称。
二、字典表与枚举
枚举值是解决硬编码问题,避免在代码中出现类似
这种情况。以前我就常常用于从服务器端读取枚举集合,返回给前端做下拉框选项。弊端前面说过了,就是客户不能更改,不方便,欠缺灵活性。枚举不能代替字典表。
三、字典表的结构
两个表。一个主表(字典表),一个从表(字典值表)。
四、字典表的使用
字典表其实只是一个字典,其值最好仅供读取,读取后,值可以存储于其他表,避免其他表与字典表关联。当然如果其他表存储了 dictionary.key 和 dictionary_item.code,展示时需要关联这个dictionary_item.text,也未尝不可,麻烦一些。