★★J2EE应用中数据库设计的问题!150分开贴,请大家支持。★★

orant 2004-10-09 09:41:16
我在做一个环境监测应用时遇到一个问题:
环境监测站的数量会随着发展而不断增加,每个监测站根据监测的具体对象(排污企业)不同,监测的指标(最多有109项)也会相应的增加并且不同。这个问题就相当与连锁商店卖商品一样,连锁商店和商品的类别都是变动性很大的,构成了一个二维的业务增长问题。在现阶段,能够监测的监测站和相应的指标还是非常的少,不可能把109项数据全作为属性放进数据库中(因为资源浪费太大)。但是今后业务可能扩展,而且监测指标不定。
我现在在设计数据库和EJB时感到非常郁闷,请大家指点啊。
...全文
232 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
深圳万兴 2004-10-15
  • 打赏
  • 举报
回复
快沉了,顶!
yourworking 2004-10-12
  • 打赏
  • 举报
回复
我们遇到类似的情况是做试验时,试验项不是固定的.只能把列变行
nwpulipeng 2004-10-11
  • 打赏
  • 举报
回复
帮顶混分
深圳万兴 2004-10-11
  • 打赏
  • 举报
回复
象在开发工资管理系统的时候,你对于工资项(奖金,紧贴,独生子女补助...)的字段的定义时候就不能定义成固定的
因为你跟本不知到人家到底有多少项,会不会变名字,明天会不会不要了!
所以你要动态的添加字段(alert table dynamictable add column dynamicfield varchar(10) null)
当然你的字段名要有一个约定.
但是当字段太多时,一个表中有100多个字段会影响读取数据的效率,并且对你开发的时候写SQL语句会有一定的影响,更糟糕的是对于以后的维护!
这时你可以用一个table来把这些项的记录添加过来,当然不一定全部添完(有些项的变动是很大的,或现在没有),所以这个任务应该交给客户来添加,他可以根据以后的情况自己去添加,这样就少了很多维护上的麻烦!
这样下来之后你的东西不就可以给所有环境检测部门的用了!典型的成品,你说呢?
试想你做了一个通用版的的工资管理系统时,你是不是可以卖到全世界!
重要的一点就是 要解决好你的算法问题!
a10002 2004-10-11
  • 打赏
  • 举报
回复
我觉得<<开发高手>>中2003年11的介绍Duwamish 7.0数据库设计的,其分析十分可取!

虽然只有一点,而且是C#应用,但与EJB应用没有什么区别,重点是数据库设计,及与EJB的连接关系!

像数据库中项比较多的应该把数据抽像一下,像虚函数一样。(楼上也有提议就是那个做模板的 hq1305018(跃强) )。一些字段要补充一下,就像接口!
tttleaf 2004-10-10
  • 打赏
  • 举报
回复
学习!不懂什么是字典表
luojx 2004-10-10
  • 打赏
  • 举报
回复
学习
Chinatosun 2004-10-10
  • 打赏
  • 举报
回复
建立字典表。

缺点:数据量大时的效率问题。
smallMage 2004-10-10
  • 打赏
  • 举报
回复
up
nice90 2004-10-10
  • 打赏
  • 举报
回复
指标成为字典表
指标一对多对应指标数据表
企业表也成为一个字典表
企业的检测结果数据表与企业表的结果是一对多的关系。
然后在企业的检测结果数据表中和指标数据表中解决一对一的关系。
慎重设计应该还可以。
yeshucheng 2004-10-10
  • 打赏
  • 举报
回复
表的建立可以有多个属性值,但是到EJB完全是一种可取的。并不是说一个表非要对应个EJB来做,当然这里也可采用一种对象数据库的概念来设计表,可能这个稍微比较麻烦
bdsc 2004-10-10
  • 打赏
  • 举报
回复
enterprise <----- foreign key ------- property

给指标键个表property
id
name
enterpriseid
type
value
description

一个企业可以有多个property,一个property对应一个企业
caominfengok 2004-10-09
  • 打赏
  • 举报
回复
我设计数据库的时候,如果遇到不定情况就使用一个字段笼统解决。例如:不同的产品性能指标可能千差万别,例如,机顶盒,不同的产商对机顶盒的性能参数不完全一样;因为采用不同的芯片,那么芯片的描述也不一样;针对的市场不一样,那么功能描述就不一样;等等。那么我对这些机顶盒的数据库设计就提供:产品简介、产品特点、产品详细介绍,当然有些标志性字段还是应该单独处理。
这样处理,客户和开发人员都有发展的空间。

不管是109项指标还是209项指标,都是检测指标。不管多少指标都有具体的含义,我们把“检测指标”做为一个字段存放具体对象的指标,但是在字段中,根据这109项指标的含义进行编号。例如:指标1=1;指标2=2......
hq1305018 2004-10-09
  • 打赏
  • 举报
回复
我觉得这个问题对数据库的设计不会有什么特殊要求,但程序中对涉及监测指标的处理部分一定不能做成死的要根据数据库里的监测指标的数量来动态处理。
我想设计一个监测指标的模板表包括全部的指标(名称,监测方法,参数等)。然后不同的监测站从模板表中选择需要的监测指标组成自己的监测指标。模板数据和监测站的数据可以放在一张表中,用一个监测站编号来区分比如0000是模板数据,0001是1号监测站的数据。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧