多对多关系

多对多关系

  多对多关系是通过 AV.Relation 来建模的。例如,一个 User 可以喜欢很多 Post。这种情况下,就可以用relation 方法保存一个用户喜欢的所有 Post 集合。

  

  Relation 会自动去重。所以,你不用去担心用户会重复 like 同一篇 post。

  你可以从一个 AV.Relation 中删除一个 post:

  

  你可以在用 save 方法保存前多次调用 add 和 remove 方法:

  

  

时间: 2024-10-01 07:46:18

多对多关系的相关文章

Laravel5.1 模型 --多对多关系

多对多关系也是很常用的一种关系,比如一篇文章可以有多个标签,一个标签下也可以有多篇文章,这就是一个典型的多对多的关系. 1 实现多对多关系 多对多关系我们需要三张表,一张是文章另一张是标签,第三章表是它们的中间表 因为多对多关系需要抽离成两个一对多关系嘛. 1.1 文章结构 public function up() { Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片:多对多关系(上)

这章介绍了怎样创建一个新的实体来管理图片,怎样使用HTML窗体来上传图片文件和使用多对多关系来使它们与产品相关,并且怎样来保存图片到文件系统中.这章也介绍了更多复杂的错误处理增加客户端错误到模型中为了把它们显示回给用户.在这章中播种数据库使用的产品图片可能在在第六章的从Apress网页站点下载代码中. 注意:如果你想遵从这章的代码,你必须完成第五章的代码或者从www.apress.com下载第五章的源代码作为一个起点. 创建实体保存图片文件名 这个项目,我们正要使用文件系统在Web项目中存储图片

MySql多对多关系中外键的应用

业务需求:用户表r_user保存用户名等信息.现需要给每个用户设置工作基地,一个用户可以有多个工作基地,多个用户也可以有一个工作基地,即多对多关系.(外键,若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性) 设计方案: 方案一:建立一张用户基地表,与r_user与用户基地表,保持一对多的关系,如图所示,r_user的主键id做为r_user_base的外键user_id.通过r_user中的id,在r_user_base表中load

Castle.ActiveRecord 多对多关系 引发的错误处理

在Castle.ActiveRecord 实体类中,如果两个对象有 “多对多” 关系,一般的做法是将其分解为 两个“一对多”关系,但有时引发了 “您要删除 或 引用 的对象#2在数据库中不存在”的异常 百思不得其解,同样的用法在“媒体引用”中一直都是正常的,为什么在“专题引用” 和“ Web栏目引用” 中就出现异常呢? 通过遍历代码发现了细微的差别: 在“媒体”的业务对象加载时,为了判断一个对象是否可以删除,常查询其被引用的 次数是多少,使用的方法是:DALMediaReference.Find

在thinkphp中,写的博文标签多对多关系的标签频率统计算法

常常看到别人的博客里面,或者网站里面有这样随机颜色,但字体大小与标签出现频率有关的标签云,于是自己就想写一个.至于颜色的随机显示,那就很简单了,这里就不列代码. 因为正在学thinkphp,所以数据查找的都是用的tp数据查找语句. 1 Public function render( $data ){ 2 //在博文——标签多对多关系的中间表中查找出所有的标签 3 $tags = M('blog_tags')->select(); 4 $a = array(); 5 //去掉重复的标签,将所有不重

jpa双向多对多关系

多对多关系相比其他其中关联关系,显得稍微复杂了一点点,这个复杂度主要体现在对这种关联关系的理解上.和其他关联关系不同的是这种关联多出来了一张中间表,操作上多了些许复杂,来随便看下吧 1  实体的定义 Student表: package org.lxh.info; import java.util.*; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.En

深入浅出Hibernate(二)多对一关系映射

学习Hibernate是为了更方便的操作数据库,在数据库中的关系模型中存在多对一的关系,比如下图所示的员工和部门之间的关系,那么这种关系在Hibernate中如何映射呢?让我用一个小Demo来详细讲解. 建立映射分为以下几步: 1.设计domain对象Department.Employee,代码如下: package cn.itcast.hibernate.domain; public class Department { private int id; private String name;

Hibernate3 多对多关系

学习hibernate的笔迹第三篇,主要内容:多对多关系, 检索策略,HQL查询,QBC,事物管理,c3p0配置 1.1.1  Hibernate的关联关系映射:(多对多) 1.1.1.1     多对多的配置: 步骤一创建实体和映射: 1 Student: 2 3 public class Student { 4 5 private Integer sid; 6 7 private String sname; 8 9 // 学生选择多门课程. 10 11 private Set<Course>

Hibernate中一对多和多对一关系

1.单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时如果只需要获取对应部门信息(user.getdeptarment())不需要 从部门下的人员信息时,就配置成单向 多对一 使用部门时如果只需要获取部门下人员信息(deptartmanet.getusers())不需要 从人员获取部门信息时,就配置成单向 一对多 既要获取部门下人员 deptartmanet.getusers()又要从人员获取部门信息

《Entity Framework 6 Recipes》翻译系列 (5) -----第二章 实体数据建模基础之有载荷和无载荷的多对多关系建模 (转)

2-3 无载荷(with NO Payload)的多对多关系建模 问题 在数据库中,存在通过一张链接表来关联两张表的情况.链接表仅包含连接两张表形成多对多关系的外键,你需要把这两张多对多关系的表导入到实体框架模型中. 解决方案 我们设想,你数据库中的表与图2-10一样. 图2-10 艺术家和专辑多对多关系 按下面的步骤将这些表和关系导入到模型中: 1.右键你的项目,选择Add(增加) ?New Item(新建项),然后选择Visual C#条目下的Data模板下的ADO.NET Entity D