用多表实现ORM的类继承,怎样确定具体类 一个节目单列表,每个节目条目不同类型,所以建立了多个表实现,一个父类表,多个子类表,节目单与条目表(父类表)建立外键连接,问题:在得到节目单列表时,如何创建合适的子类对象?因为子类数目属性差别可能很大,有可能还在新建不同的条目。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个父类表,多个子类表?没必要两个表即可父类表(父类id,父类名称)子类表(子类id,子类名称,父类id,子类的父(pid)) 子类表(子类id,子类代码,子类名称,父类id,子类的父(pid)) 弄棵树,建那么多表干什么啊。一张表啊(id,名字,引用本表id,)不就得了 楼主的意思我是看明白了,但问题不是很明白。主表里面加一个字段,区分类型。得到主表记录后,根据这个字段的值,来决定取哪个子表、创建哪种子类对象。就是工厂模式。没有什么好的办法。如果你用ibatis3做为ORM,它里面有一个功能支持一个主表对多个子表。 一个类别表 所有类别都用这张表;一个节目单表class Type {Type type;set<Type>set<Jiemu>}class Jiemu{Type type} ibatis3我没用过,现在这种方式在插入的时候没问题,一次插入几个表就行了。但在查询一个节目单的时候,得到一个条目ID,要知道具体是哪种条目还有些费事,具体在创建的时候,只能根据type类型,用个case,然后根据不同的值,再到不同的表中实例成不同的类。这感觉总有点不太自然,如果多个子类,就要 多一个case。 问题是这样的: 大体是做一个屏幕控制和发送的程序。有多个显示屏,类似火车站外面LED显示屏,要做成节目单的形式,控制其显示内容。插入内容可能是标语,口号,广告,或者天气预报,节日,倒计时,还有从数据库实时查询出来的数据,按预先设置好的顺序显示,要求客户端控制这些节目单的生成,和条目信息按照相应接口通过UDP协议发送,并在客户端模拟显示,动态更新其状态。发送的内容可能有两种形式,一是发送文字,有多种字体可选,16点阵和24点阵字体。可以以点阵形式发送,控制屏幕上每一点的亮暗。其中实时查询的数据是每20s要更新一次,查询的内容可能要显示多屏。现在的想法是,根据条目的不同,分成不同的类,但每一种做为节目单上的一个条目。有些条目是固定的,如标语口号等,可以预先设置要发送的数据内容,而有些如日期,有其固定的算法,默认取当前日期,可能显示年月日时分秒,或星期几等。实时数据显示要存储其查询要求,在显示的时候,根据定义取得相应的数据,并将其分隔成多屏。另外,每一个条目还可能是按发送固定次数,固定的时间段显示,或每天内只是固定时间段显示。目前的划分是,将每一个节目单条目作为一个类,同时有个辅助类确定其是否符合显示条件。条目类中包含一个显示条目类,作为各种显示条目的父类。根据内容的不同,这个条目可能是标语口号等固定内容类,也可能是日期,节日等动态内容,也可能是实时数据。类和数据库设计中,如何根据一个显示条目的ID,确定实例化哪个具体的显示条目类。不知道我说明白了没有,呵呵。================================谢谢! 跟我理解的意思差不多我以前也做过类似的设计,一个登记主表,根据主表里面的一个字段判别使用哪种类型的附表。没有什么好的解决办法,跟你目前使用的方法没有什么区别。增加一种附表,就得改程序加一个case。建议你看看ibatis3,里面提供了一种相对比较优雅的解决方案,可以把这种变化放到xml文件中。 关于在struts2中权限验证的问题 大牛们,帮俺解决个问题:20万的数据要插入到另一个库里,怎么效率比较高 列表自动静态刷新 C/S 模式的程序移植到Web Services的问题? hibernate中Blob,Clob字段类型,二级缓存的问题 J2ME和J2EE相比,哪个更有前途? 如何使用stateless bean+CMP实现一个登录网页 struts部署问题问题,高分求教 JAVA适不适合没有编程基础的人学? 哪儿有Weblogic6.1 license? J2EE主要学什么? 小菜请教老鸟问题,我的AJAX程序为什么运行不出结果
两个表即可
父类表(父类id,父类名称)
子类表(子类id,子类名称,父类id,子类的父(pid))
主表里面加一个字段,区分类型。
得到主表记录后,根据这个字段的值,来决定取哪个子表、创建哪种子类对象。
就是工厂模式。
没有什么好的办法。
如果你用ibatis3做为ORM,它里面有一个功能支持一个主表对多个子表。
class Type {
Type type;
set<Type>
set<Jiemu>
}
class Jiemu{Type type
}
ibatis3我没用过,现在这种方式在插入的时候没问题,一次插入几个表就行了。但在查询一个节目单的时候,得到一个条目ID,要知道具体是哪种条目还有些费事,具体在创建的时候,只能根据type类型,用个case,然后根据不同的值,再到不同的表中实例成不同的类。这感觉总有点不太自然,如果多个子类,就要 多一个case。
大体是做一个屏幕控制和发送的程序。有多个显示屏,类似火车站外面LED显示屏,要做成节目单的形式,控制其显示内容。插入内容可能是标语,口号,广告,或者天气预报,节日,倒计时,还有从数据库实时查询出来的数据,按预先设置好的顺序显示,要求客户端控制这些节目单的生成,和条目信息按照相应接口通过UDP协议发送,并在客户端模拟显示,动态更新其状态。
发送的内容可能有两种形式,一是发送文字,有多种字体可选,16点阵和24点阵字体。可以以点阵形式发送,控制屏幕上每一点的亮暗。其中实时查询的数据是每20s要更新一次,查询的内容可能要显示多屏。现在的想法是,根据条目的不同,分成不同的类,但每一种做为节目单上的一个条目。有些条目是固定的,如标语口号等,可以预先设置要发送的数据内容,而有些如日期,有其固定的算法,默认取当前日期,可能显示年月日时分秒,或星期几等。实时数据显示要存储其查询要求,在显示的时候,根据定义取得相应的数据,并将其分隔成多屏。
另外,每一个条目还可能是按发送固定次数,固定的时间段显示,或每天内只是固定时间段显示。目前的划分是,将每一个节目单条目作为一个类,同时有个辅助类确定其是否符合显示条件。条目类中包含一个显示条目类,作为各种显示条目的父类。根据内容的不同,这个条目可能是标语口号等固定内容类,也可能是日期,节日等动态内容,也可能是实时数据。类和数据库设计中,如何根据一个显示条目的ID,确定实例化哪个具体的显示条目类。
不知道我说明白了没有,呵呵。
================================
谢谢!
我以前也做过类似的设计,一个登记主表,根据主表里面的一个字段判别使用哪种类型的附表。
没有什么好的解决办法,跟你目前使用的方法没有什么区别。增加一种附表,就得改程序加一个case。
建议你看看ibatis3,里面提供了一种相对比较优雅的解决方案,可以把这种变化放到xml文件中。