`
together
  • 浏览: 220054 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

在分表的情况下,ActiveRecord如何支持继承?

    博客分类:
  • ruby
阅读更多
想实现如下的效果:Horse/Pig/Sheep均继承Animal,拥有共同的属性和关联。
class Animal<ActiveRecord::Base
    has_and_belongs_to_many : xxx
    has_many : xxx
    belong_to : xxx
end

class Horse < Animal
end

class Pig < Animal
end

class Sheep < Animal
end
......

试了一下,好像不行阿。Horse/Pig/Sheep三个类必须继承自ActiveRecord::Base才能正常使用。但我又不想把各个关系都在这几个子类里写一遍。能实现么?

分享到:
评论
5 楼 glchengang 2007-08-10  
关于多表继承,能否给一个例子。还有第二版的第18章是讲Controller的,是不是第17.2节Aggregation呢。

4 楼 together 2006-12-28  
对啊,一翻到第19章,就发现不是一回事。多谢二位。我回头把书好好看看再。
3 楼 gigix 2006-12-28  
BirdGu 写道
Rails实现的是单表继承,所有子类共用一个表。所以如果你的问题是每个子类用不同的表的话,那么Rails不支持,要想别的办法。

其次,你举的例子里,子类的属性和关系完全一样,完全可以用单表继承,没有必要分表。

不完全对。Rails 1.2支持另一种异构对象聚合技术:多态关联。参考Agile Web Development with Rails第二版第18章(前面说错了,第19章是关于模型对象生命周期的)。
2 楼 BirdGu 2006-12-28  
Rails实现的是单表继承,所有子类共用一个表。所以如果你的问题是每个子类用不同的表的话,那么Rails不支持,要想别的办法。

其次,你举的例子里,子类的属性和关系完全一样,完全可以用单表继承,没有必要分表。
1 楼 gigix 2006-12-28  
Agile Web Development with Rails第二版,第19章。

相关推荐

    50_一个关键的问题!分库分表之后全局id咋生成?.zip

    在IT行业中,数据库设计是至关重要的,特别是在大型系统中,分库分表是解决高并发、大数据量场景下的常见策略。然而,随着数据的分散,如何生成全局唯一ID(Global Unique Identifier)成为一个关键问题。本话题将...

    mycat修改源码扩展subTables 支持按月分表 $201701-? 配置

    基于MyCat1.6正式版的源码修改的,支持subTables的按月分表正则配置 subTables=“ tableName_$201701-?” subTableWay="BYMONTH" 表示从201701月份开始进行分表处理,?表示当前日期的月份,是动态的。只需配置开始...

    TP5+MySQL通用分表代码

    - 分表情况,2:日期分表,按照目标表里面的记录日期的字段,按照日期【日、周、月、年】拆分成多个表【本代码仅考虑unix时间戳来分表,其它不支持,您可以自己思考,自己修改代码】 - 注意,支持【子表】,填入...

    MySQL中如何进行分库分表的设计和实现?

    数据库选择:选择合适的数据库管理系统(DBMS),如 MySQL,支持分库分表的功能。MySQL 是一个流行的开源关系数据库管理系统,具有高性能、可靠性强、扩展性好等特点,非常适合大型数据库应用。 数据切分策略:根据...

    hibernate动态分表

    在Java Web开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,支持多种数据库分表策略。本篇文章将深入探讨Hibernate如何实现动态分表,并结合源码分析其工作原理。 首先,了解动态分表的基本概念。动态...

    47_来来来!咱们聊一下你们公司是怎么玩儿分库分表的?.zip

    总的来说,分库分表是解决大数据量下数据库性能问题的有效手段,但同时也需要考虑其带来的复杂性和运维挑战。在Java开发中,合理地利用像ShardingSphere这样的中间件,可以简化这一过程并确保系统的高效运行。

    48_你们当时是如何把系统不停机迁移到分库分表的?.zip

    ”提示了本次讨论的主题,即如何在不中断服务的情况下,对数据库进行分库分表操作。这通常是一个复杂的过程,涉及到数据库架构的调整、数据迁移、双写策略以及回滚计划等关键环节。 描述中给出的链接指向了CSDN...

    【ASP.NET编程知识】C#中efcore-ShardingCore呈现“完美”分表.docx

    在上面的代码中,我们创建了一个SysUserMod类,该类继承自IShardingTable接口,并添加了[ShardingTableKey]特性,以便框架可以正确地进行分表。 此外,efcore-ShardingCore框架还支持动态添加分表信息、支持select...

    数据分库分表之二叉树分库分表

    - 在设计不合理的情况下,可能会出现所有节点都需要分裂的情况。 - 初始阶段需要预先规划好所有的表,否则后期的数据迁移工作量较大。 #### 五、结论 二叉树分库分表作为一种有效的数据分库分表策略,能够在保证...

    MySQL分表及分表后插入sql

    MySQL分表及分表后插入sql语句,表为订单表,可以参考一下

    Python+MySQL分表分库实战

    MySQL分库分表是数据库架构设计...通过本实战教程的学习,读者将能够掌握MySQL分库分表的理论知识和实践操作技能,进一步提升自己在数据库架构设计和运维方面的能力,为处理大规模应用的高并发场景提供有力的技术支持。

    kettle对数据分表插入

    在大数据场景下,单一的大表可能会导致性能瓶颈,因此通常会采用分区策略将数据分散到多个小表中,这被称为分表。这样做可以提高查询效率,减轻单个表的压力。Oracle数据库提供了多种分区策略,如范围分区、列表分区...

    分库分表自动建库表小工具

    在IT行业中,数据库管理是至关重要的,特别是在大数据量的情况下,分库分表是一种常见的优化策略。这个名为"分库分表自动建库表小工具"的程序正为此目的而设计,它能帮助开发者自动化地创建分布式数据库架构。下面将...

    springmvc分库分表实际例子

    在IT行业中,数据库扩展是解决高并发、大数据量场景下的常见策略,而“分库分表”正是其中一种有效的手段。本示例“springmvc分库分表实际例子”提供了一个基于SpringMVC实现的实战项目,旨在帮助开发者了解如何在...

    分表 JAVA 分表例子,带SQL文件

    在IT行业中,数据库分表是一种常见的优化策略,用于解决大数据量和高并发场景下的性能问题。本示例主要探讨了如何使用Java实现分表,并且提供了SQL文件作为辅助理解。以下将详细介绍Java分表的基本概念、重要性以及...

    spring动态数据源+mybatis分库分表

    在本例中,通过配置文件分配分库模版,可以在不修改业务代码的情况下,灵活地调整分片策略。 6. **扩展性与可伸缩性**:通过动态数据源和分库分表,系统能够随着数据量的增长而平滑扩展,增加新的数据库实例而不...

    Python与MySQL分表分库实战

    4. **数据迁移与同步**:在进行分表分库后,可能需要定期或在特定情况下进行数据迁移和同步,保持数据一致性。 5. **事务处理**:分库分表后,跨表跨库的事务处理会变得复杂,需要设计好事务边界,确保数据的一致性...

    sharding分库分表demo

    在IT行业中,数据库扩展是解决高并发、大数据量场景下的重要策略之一,"sharding分库分表"就是其中一种常见的方法。本示例通过整合一系列技术,包括SpringBoot、ShardingSphere、Swagger和MyBatis-Plus,来演示如何...

Global site tag (gtag.js) - Google Analytics