论坛首页 Java企业应用论坛

java 对于数据字典(系统参数)的理解,困惑。

浏览 11411 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-07-13  
最近要自己设计字典,以前也做过。但是有些地方很困惑,请大拿们指点一二。。。。

---------------------正题----------------------------------

数据字典:在数据库表中定义某个dictType:比如'国家',再写具体的dictItem:比如“中.国”,“美.国”,“小.日.本”。

前台通过自定义标签也好,或者后台直接传值也好,显示到页面。

无论哪种方式,都需要在代码中写死具体的dictType。(也正常,你要显示这个字典,当然要写dictType是什么了。)



但是 问题来了:
该字典可以修改,改动dictItem当然没关系,(我对字典的好处理解也仅仅是这个)。

要是把这个字典类删除了,或者改了名了(比如dictType由’国家‘改成‘国籍’),怎么办???要重新编码??

请大拿们分析分析。是不是字典约定就不能更改字典大类?



-------------------问题2--------------------
再比如说账户状态:
在数据库字典里配置了:
0:正常
1:销户
2:冻结
在页面上要判断状态,以便执行不同的操作。

这样的字典能改吗?伤不起!
   发表时间:2011-07-13  
求指点!!!
0 请登录后投票
   发表时间:2011-07-13  
字典类,分为两种,一类为可变,即用户可以随时添加,另一类为系统内部数据,不可变。
对于不可变数据,可以系统内部硬编码使用。
字典类数据除可视部分之外,还应该有一个相对应的系统不可变编码相对应,编码用于系统内部判断和实现,可视数据用于界面展现。

字典类数据一般不允许被删除,除非这个字典数据从来没有被系统内部引用(当然可以被禁用,禁用表示系统不可见)

字典类名称可以修改,修改不影响具体使用,因为内部引用没有发生变化。
0 请登录后投票
   发表时间:2011-07-14  
.........
我现在知道怎么做了,需要做一个映射。
0 请登录后投票
   发表时间:2011-07-14  
系统数据字典可分为三个层次:

第一:平台层--->指系统依赖的底层平台级数据字典,如:标准字段类型;这个层次只能在开发平台阶段修改,其余不允许修改。

第二:应用层--->指系统应用逻辑涉及的数据字典,如上述的用户状态类型;这个只能在开发系统的时候修改,客户无权修改。

第三:表现层---->指最终客户自己定义的数字典,如国家分类;这个客户可随时动态添加

这个三个层次都得做控制。所以在数据字典表中得定数据字典平台标志字段,通过这个字段可控制。

当然数据字典还分生命周期,这个在上面也体现了。
生命周期又分为:开发,测试,维护。这些阶段数据字典的操作规则都不同的。

希望对你有用。
0 请登录后投票
   发表时间:2011-07-14  
hailiang0901 写道
系统数据字典可分为三个层次:

第一:平台层--->指系统依赖的底层平台级数据字典,如:标准字段类型;这个层次只能在开发平台阶段修改,其余不允许修改。

第二:应用层--->指系统应用逻辑涉及的数据字典,如上述的用户状态类型;这个只能在开发系统的时候修改,客户无权修改。

第三:表现层---->指最终客户自己定义的数字典,如国家分类;这个客户可随时动态添加

这个三个层次都得做控制。所以在数据字典表中得定数据字典平台标志字段,通过这个字段可控制。

当然数据字典还分生命周期,这个在上面也体现了。
生命周期又分为:开发,测试,维护。这些阶段数据字典的操作规则都不同的。

希望对你有用。

恩 总结的不错
0 请登录后投票
   发表时间:2011-07-15  
我加了个readonly
0 请登录后投票
   发表时间:2011-07-16  
关于这个问题 有没有什么好的解决方法吗  请详细说明下  谢谢
0 请登录后投票
   发表时间:2011-07-17  
我开发的时候用的是枚举,然后用自定义标签通过反射机制把枚举读出来,但是我认为这样有违反了当初用枚举的初衷,不知他人有更好的方法
0 请登录后投票
   发表时间:2011-07-17  
我一般是这样处理的
我把数据字典分两种:
一,集合内的元素无特例,即你值的变化或集合个数的变化,不会对我程序造成影响,比如车型、国家、性别之类(当然不同系统有不同要求,仅仅是举例),这个我一般会用数据库来配置
然后加一些简单的系统参数的配置来做例外
比如正常逻辑:其它国籍的人过来要亲(国籍定义在数据库)。
定义例外:日本、越南的人过来要打。(这些例外可能在其它参数里配置)
当这些例外越来越多的时候,就得变化了,比如有些可以直接那个啥的,或S+M之类的。
我可能会将这些动作作为国籍的一个附加属性或其它的设计方法来。


二,集合内的元素的变动将会引起逻辑的更改,我会用枚举。比如某些动作的集合(如上面的亲、打、那个啥),某些重要类型的集合
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics