项目开发中 如何设计数据字典?

问题描述

比如:people实体有性别(男女)、国际(汉族、回族、满族、藏族...)、学历(小学、中学、高中、本科...)等等属性,这些属性都有相似处,前台展现时都以下拉框实现,如何将这些数据作为数据字典设计,而不是写死的呢?如果用数据字典directionary表存取这些值 那么需要和实体类即people表关联吗?也就说people表的sex存取的是directionary表的Id吗? 问题补充:AngelAndAngel 写道

解决方案

真正的项目字典不只是用来存储那些常量,而是为整个系统提供全方面的字典服务,易用好查性能高是一个准则。而且字典肯定需要缓存的,你试想,当你在表单中生成了下拉列表,存入数据库,都是存的字典的数据,那你读取的时候,肯定得判断显示的数据,这个时候你不用缓存,性能极度浪费(这可不是一般的浪费)。实现下拉列表和一些常用的radio是字典功能必须衍生出来的重要功能,不然够你麻烦的。至于缓存策略,我现在是这样的:字典肯定有维护功能,假如最初存在内存里面,假如你后期要维护,岂不是得重新启动。所以我在在添加和修改的时候,会有一个标志,凭借这个标志重新读取数据库。没有更新的时候就一直在内存,有更新的时候,就重新读取。 还有,一个表确实是够用,但是麻烦程度不是你可以想象的。
解决方案二:
欢迎采纳 哈哈
解决方案三:
可以站内发短信啊兄弟你这句话 map是静态的,变更后重新读取数据库更新map 是真理 呵呵 就是用数据库的值来更新它。你用字典 不用缓存 真的还不如不用。举个例子,你现在有一个用户列表,每行都有性别,籍贯,学历这些字典数据,假如你需要列出100行,每行3个,你得查询300次数据库。 太浪费性能了。
解决方案四:
还有 假如你不想维护数据那种字典,也可以做成js的数据字典,这方面我也有一些实现。至于生成下拉列表框等 表单元素 很好解决的,用jquery,假如你不太明白,可以及时站内我。
解决方案五:
数据字典其实不用这么麻烦用多张表的,用一张表就够了。directionary表只是加一个parent_id字段,增加其内连接关系。通过这个id就可以找到它属于哪一个类别了前台的话用Map结构取值。Map<String,Map<String,Object>>比如存放学历Map<'103',<'001','小学'>Map<'103',<'002','中学'>Map<'103',<'003','高中'>Map<'103',<'004','本科'>很方便的
解决方案六:
你自己已经给出了答案了嘛,我们也叫这些字典数据为元数据,在BI工具中经常使用的。
解决方案七:
对这个方面 你用一个表来做 可以实现 但是在项目中运用的时候 不太好,特别是复杂的表单。还有数据字典其实面临的最大问题是查询匹配问题,并且得非常灵活,比如你页面不光是要读取,还得判断,还得当作条件来查询其他数据库,还得转化等等,这些都是非常重要的。 我现在是用的两个表 ConstType和Const,目前已经实现了自动生成下拉表,缓存读取,和方便灵活的查询策略,算是比较完善的数据字典了。假如你需要 我们可以聊聊。

时间: 2024-12-03 16:27:18

项目开发中 如何设计数据字典?的相关文章

项目开发经验-ASP.NET项目开发中的异常处理

前言:异常的处理在项目开发中是很有必要的,异常的处理不仅仅只是try..catch..finally就完事了的.异常处理绝对可以称开发中的重要组成部分.必须正确的面对异常,因为即使是最能干的开发人员,也要面对这个问题 .... 我们不知道客户是怎么样使用我们开发的软件的,所以我们必须处理这样的情况:如果系统不按照我们的设计时所想的运行,我们改怎么办? 下面我们就来具体的介绍在ASP.NET项目开发中的异常的处理方式,希望看完后,大家可以回答上面的问题. 本篇的话题如下: 应用程序级别异常处理的错

WP7应用开发中交互设计和UI设计的几点建议

文章描述:WP7交互特性浅析及APP设计探究. Windows phone7是无线领域的新生力量,但是迟迟没有进入中国市场.Mango(注意WP7和mango不是一个概念)的发布带来了中文的操作系统,也让人们看到了该系统的无限可能.在此,我结合自己在进行相关应用设计的经验以及自己对WP7系统认识和理解,浅谈一下这一特别系统的交互特性. 本文索引: 涅磐重生的WP7(以及它的历史简介) WP7对比iOS和Android WP7设计风格 WP7内容和结构框架及特有名词解释 WP7交互特质分析 WP7

项目开发中遇到的大量数据保存的问题

问题描述 项目开发中遇到的大量数据保存的问题 在项目开发中遇到的问题,是一个视频监控,有客户端和服务端.客户端播放视频的时候,需要 得到摄像头的ip地址,用户名,密码,通道这些信息,出于某些原因,现在这些数据是保存在服务端的 也就是说,客户端每次登陆需要向服务端请求这些数据.我的问题是,客户端对这些请求到的数据怎么保存? 要保存到全局变量里吗?因为摄像头比较多,所以数据也比较大,我不太清楚保存在全局变量里是不是合适. 解决方案 根据自己的情况,小的放在内存(局部或全剧都可以),大了放在文件中或数

THINKPHP项目开发中的日志记录实例分析_php实例

本文实例讲述了THINKPHP项目开发中的日志记录用法.分享给大家供大家参考.具体方法如下: 1.建立日志表 复制代码 代码如下: CREATE TABLE `logs` (    `id` int(11) NOT NULL auto_increment,    `guid` varchar(100) character set utf8 NOT NULL,    `addtime` timestamp NOT NULL default CURRENT_TIMESTAMP,    `accoun

项目开发中对使用的第三方库统一进行管理__添加属性表/页

最近接手的一个项目开发中用到了很多第三方库,比如boost.gdal.xerces等等这些.从接手项目到现在从中学习到了很多之前从未见识过的东西.项目绝大部分都是前辈们写的,对于里面的对第三方库的管理我感觉是很不错的,所以记录下来以备后用,好的东西同时也应该分享给更多的可能会用到的... 项目开发中,如果遇到不是自己开发的项目时,当需要另外的人去维护时,经常连正常的编译连接都不能通过,很多的都是需要设置一些工程属性什么的,搞了半天最终才能编译通过.像这些类似的体力活可能是大多数人不愿弄的. 这里

项目开发中的权责分配

在软件项目开发中,角色众多,常常有权责不明的问题,事后抱怨也是家常便饭.有人加班加点,有人悠哉悠哉,多做事的反而错的多! 即使公司有一套制度,这样的问题也是一再出现,究其原因还是在R&R的定义是不是在项目开始时定义清楚了.   在项目开发中涉及的角色主要有:项目经理(PM),项目协调,组长(TL),开发人员,测试人员,市场人员,产品规划人员以及其它辅助单位的同事.要做的事情也是项目管理中规定的一系列步骤.这些对很多项目管理者都是清楚的,但是在谁对什么负责的问题上却是模糊的.比如需求文档的撰写就包

项目开发中MSSQL使用存储过程的好处

在应用MSSQL进行大中型网站项目开发的时候,我们推荐尽量使用存储过程来处理一些SQL操作. 使用存储过程的好处及优势如下解释: 1. 通过把处理封装在容易适应的单元中,简化复杂的操作. 2. 由于不要求反复建立一系列处理步骤,保证了数据的一致性.如果所有开发人员和应用程序都使用同一存储过程,则所使用的代码都是相同的. 这一点的延伸就是防止错误.需要执行的步骤越多,出错的可能性就越大.防止错误保证了数据的一致性. 3. 简化对变动的管理.如果表名.列名或业务逻辑(或别的内容)有变化,只需要更改存

在Web项目开发中使用BasePage类的巧用(继承System.Web.UI.Page)

web|继承|项目 在web项目开发,我们基本每页都要与数据库连接,是不是每页都要实例化数据库对象呢?当然不用,只要我们写一个继承Page类的类就可以了.只要我们每个CodeBehind页面都继承这个类,就直接可以调用此类的属性了.以此类推,我们还可以加入一些项目中经常要用到的功能. 以C#为例,列出代码. using System; using System.Diagnostics; using System.Web; using DbLayer ; using System.Web.UI.W

对项目开发中几种测试类型的理解和实操

项目 原文: 测试一般是放在系统完成后进行测试,但今天,却常常听到资深开发人员劝导新人们:"测试是开发的第一步"这句话如何理解呢?如果从日本人发明的巴克质量管理的方式去理解,大概是指每一个环节交给下一级时都应该进行测试.有些测试对后面的操作没有太大的影响,如图片不漂亮,菜单不合理,布局很难看之类:而另一些,却直接让下一级无法开始工作,象用例不清晰:用例自相矛盾:组件内部错误:框架不合理等等.固然,一级级把关,可以把质量提高到至少一个档次以上:但就每一个环节而言,仍然是在开发的最后阶段.