首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 看到一种数据库设计的方式,说是目前比较先进的方式,但是我不能理解,请高手解释
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-24 12:38:47 楼主
    是这么设计的:

    1.对于一个表对象我们会需要用某个字段表示其属性或状态(如性别,业务类别等),一般我会使用一个int字段来表示(0,1,2...),但是我看到的设计是使用一个定长的char('0','1','2'...).

    2.对于多个状态组合表示一类大的数据信息(最典型的是公民的身份证号,是由地区号,出生日期,及序列多个数据组成),我看到比较多的是用多个字段表示多个子数据(如地区号,出生日期,序列各一个字段,身份证号由这几个数据拼接而成),但是这里会就用一个身份证号表示地区,出生日期,及序列,换句话说没有其他字段,只有身份证字段.

    我是看到我一个同事这么设计的,他是从其他部门调来的数据仓库专家,但是在我们这套Java系统中我完全不能理解这么设计的优点在哪里(至少从他的解释中不能明白).在我看来,至少这么设计有两个问题:

    1.int 比 char 轻而快,而且对应状态更灵活,因为没有位数限制,而且在业务层处理起来也更高效率简便

    2.其实从最基础的知识就可以知道,是先有地区,出生日期,及序列,再有身份证的,这种数据组合的做法个人感觉很不合逻辑,更重要的是对于数据映射也很不方便,想获得其中某个子数据必须得拆取...

    感觉我认为的问题都是业务层对数据库获得值以后的问题,而这都是他不能考虑的(我和他沟通过,感觉他对Java的理解只停留在用连接数据库获得结果集表现在界面上...)

    有可能是他对我们系统中数据库的定位不清,也有可能是这种设计我还没有领会这种优点,请高手指教
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-24 12:51:441楼 得分:0
    这个我觉得是根据业务需求来定的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-24 12:56:162楼 得分:0
    根据业务需求来设计才是最先进的,想用一个通用的设计模式,不会有多先进的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-24 15:20:463楼 得分:0
    最主要的是把业务逻辑表达完整,才能够谈得上优化

    楼主说的是数据库专家,说不定他的水平很一般

    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved