`
varding
  • 浏览: 960 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

多个外键指向一个模型

阅读更多
多个外键指向一个模型,比较极端的例子:

http://stackoverflow.com/questions/307581/rails-model-has-many-with-multiple-foreign-keys

class Person < ActiveRecord::Base
  belongs_to :father, :class_name => 'Person'
  belongs_to :mother, :class_name => 'Person'
  has_many :children_of_father, :class_name => 'Person', :foreign_key => 'father_id'
  has_many :children_of_mother, :class_name => 'Person', :foreign_key => 'mother_id'
end


注:
  • class_name => 'Person','Person'必须是字符串,不能是符号,而且大小写必须与模型类一样
  • has_many必须指定foreign_key



引用:someone.father
someone.mother
someone.children_of_father
someone.children_of_mother
0
0
分享到:
评论

相关推荐

    Hibernate 一对多外键单向关联

    一对多外键单向关联是一种常见的关系映射方式,它描述了一对多的关系,其中一个实体(例如Person)可以与多个其他实体(例如Address)相关联,而关联的方向只从多方(Address)指向一方(Person)。这种关联模式下,...

    Hibernate期末作业一对多(主外键)

    在数据库设计中,一对多关联是指一个实体(如表)可以对应多个其他实体,而其他实体只能对应一个该实体。在Hibernate中,这种关系可以通过主键和外键的概念来实现。 【描述】提到的"主外键"是数据库关系模型中的...

    django外键关系的model互相读取数据.docx

    - `blog`: 一个ForeignKey,指向Blog模型,表示每篇条目属于哪个博客。 - `headline`: 一个最大长度为255的CharField,作为条目的标题。 - `body_text`: 一个TextField,存储条目的正文内容。 - `authors`: 一个...

    在标准的三层架构中用GridViwe显示数据库外键的数据

    例如,如果有一个`Orders`表和一个`Customers`表,`Orders`表有一个外键`CustomerId`指向`Customers`表的`Id`。 2. **实现数据访问层**:编写DAL,提供获取订单及关联客户信息的方法,例如`GetOrdersWithCustomers...

    数据库概念模型设计

    - 一张表中可以有多个外键,用于关联不同的实体。 #### 七、示例:部门与员工表之间的关联 以部门表(`dept`)和员工表(`emp`)为例: - 部门表的主键为`deptno`,员工表中有一个外键`deptno`与之相对应。 - ...

    信息系统软件设计:第5章 Hibernate持久层技术(2).ppt

    在数据表中,多的一方会有一个外键指向一的一方的主键。在对象模型中,多的一方通常持有对一的一方的唯一引用。 3. **一对多(One-to-Many)关联映射**: - 这种关系与多对一相反,一个实体可以对应多个实体实例。...

    SQL中的主键和外键.doc

    - **个数**:一个表可以有多个外键。 **3. 索引** - **定义**:索引是一种特殊的数据结构,用于提高查询效率。 - **作用**:提高查询速度。 - **个数**:一个表可以有多个索引。 **4. 聚集索引与非聚集索引的区别...

    Django 实现外键去除自动添加的后缀‘_id’

    例如,如果`Book`模型有一个`author`外键指向`Author`模型,你可以通过`book.author`获取书籍的作者。 3. **`on_delete`行为**:在定义外键时,可以设置`on_delete`参数来指定当关联对象被删除时,应如何处理相关联...

    thinkphp关联模型的使用

    例如,用户表和用户详情表,用户详情表的外键指向用户表的主键,可以这样定义: ```php // 在User模型中 public function detail() { return $this-&gt;hasOne('Detail', 'user_id', 'id'); } ``` 2. **一对多关联...

    SSD7 EXAM2

    例如,在实体 `COACH` 中增加了一个新属性 `ManageTeamName` 来表示一个教练管理的团队名称,并将其设置为外键指向 `TEAM` 实体中的 `Name` 属性。 #### Step3: 处理一对多关系 (1:N) 当两个实体之间存在一对多的...

    数据库技术与应用 外键约束-D习题与作业.doc

    它指向另一个表的主键(Primary Key,简称PK),这个“另一个表”通常被称为父表,而包含外键的表则称为子表。通过这种方式,外键约束确保了子表中的数据引用父表中有效的记录,防止了非法数据的插入,从而保持了...

    关于Django外键赋值问题详解

    `ArticleContent` 中有一个外键 `article` 指向 `Article`: ```python class Article(models.Model): title = models.CharField(max_length=1024, default='') # ...其他字段 def __str__(self): return '...

    hibernate的软件模型.doc

    这种关系在数据库中通常通过在订单表中添加一个指向客户表主键的外键字段来实现。 - **Category 和 Item 实体**:这是一种多对多的关系。一个商品类别(Category)可以包含多个商品(Item),同时一个商品也可以...

    【MySQL】ER模型(十六).pdf

    - **建表原则**:在多方表中创建一个字段作为外键指向一方表的主键。 ##### 3. 多对多关联 - **定义**:两个实体之间可以互相拥有多个实例的关系。 - **示例**:学生与课程之间的多对多关系。 - **应用场景**:当...

    Django之Mode的外键自关联和引用未定义的Model方法

    在上面的例子中,`super_department`字段定义为指向`Department`自身的外键,这使得我们可以轻松地查询一个部门及其所有下级部门。 #### 三、Django Model引用未定义的Model ##### 1. 问题描述 在实际开发中,...

    对Django外键关系的描述

    对于`GoodsMessage`表来说,它将包含一个名为`Category_id`的外键字段,该字段指向`GoodsType`表的主键`id`。下面是对应的SQL语句示例: ```sql CREATE TABLE `GoodsType` ( `id` int(11) NOT NULL AUTO_INCREMENT,...

    Many-to-one关联映射

    将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用 会在多的一端加入一个外键,指向一的一端,这个外键是由 中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致

    Hibernate关联映射

    连接表会包含两个外键,一个指向父实体,另一个指向子实体。映射配置中,需要创建连接表实体,并使用 `many-to-one` 元素表示关联。 6. Hibernate 多对一外键单向关联: 在多对一关联中,多个实体(如 Order)可以...

    UML讲义13-数据库设计.ppt

    - 一对多关系:一个实例对应多个实例,通常在多的一方创建一个外键指向一的一方的主键。 - 多对多关系:多个实例对应多个实例,需要创建一个额外的关联表,存储两个类的主键组合。 3. 数据库查询示例:在上述两...

    hibernate多对一、一对一、一对多、多对多映射的理解(经典)

    多对一关联映射的本质是将关联关系映射到数据库中,所谓的关联关系是对象模型在内存中的一个或多个引用。&lt;many-to-one&gt; 元素会在多的一端加入一个外键,指向一的一端,这个外键是由 `&lt;many-to-one&gt;` 中的 `column` ...

Global site tag (gtag.js) - Google Analytics