标签: many-to-many

什么是在Django中使用的`related_name`?

什么是related_name对on ManyToManyFieldForeignKey字段有用的参数?例如,给出以下代码,有什么影响related_name='maps'

class Map(db.Model):
    members = models.ManyToManyField(User, related_name='maps',
                                     verbose_name=_('members'))
Run Code Online (Sandbox Code Playgroud)

python django many-to-many foreign-key-relationship

339
推荐指数
5
解决办法
17万
查看次数

使用关联表中的其他字段首先创建代码,多对多创建代码

我有这种情况:

public class Member
{
    public int MemberID { get; set; }

    public string FirstName { get; set; }
    public string LastName { get; set; }

    public virtual ICollection<Comment> Comments { get; set; }
}

public class Comment
{
    public int CommentID { get; set; }
    public string Message { get; set; }

    public virtual ICollection<Member> Members { get; set; }
}

public class MemberComment
{
    public int MemberID { get; set; }
    public int CommentID { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# many-to-many entity-framework ef-code-first

282
推荐指数
4
解决办法
12万
查看次数

Rails find_or_create_by多个属性?

在活动记录中有一个名为find_or_create_by的方便动态属性:

Model.find_or_create_by_<attribute>(:<attribute> => "")

但是,如果我需要通过多个属性find_or_create呢?

假设我有一个模型来处理Group和Member之间的M:M关系,称为GroupMember.我可以有很多实例,其中member_id = 4,但我不想要多于一次的实例,其中member_id = 4和group_id = 7.我正在试图弄清楚是否可以这样做:

GroupMember.find_or_create(:member_id => 4, :group_id => 7)
Run Code Online (Sandbox Code Playgroud)

我意识到可能有更好的方法来处理这个问题,但我喜欢find_or_create这个想法的便利性.

activerecord many-to-many model ruby-on-rails dynamic-attributes

199
推荐指数
5
解决办法
10万
查看次数

如何在Django中使多对多字段可选?

当您有多对多关系(related_name而不是through)并且您尝试使用管理界面时,您需要输入其中一个关系,即使您不必存在创建第一个条目.

我正在创建一个作为活动组织者的应用程序.想象一下,我们拥有EventGroup模型,与多对多关系绑定.

Django related_name创建了另一个表,其中包含其他两个表的索引.
但我看不出为什么这个额外的表已经被填充.

如果我通过phpMyAdmin使用数据库,我可以创建一个Group没有注册的Event,因为两者之间的连接只是通过一个单独的表,并且在给定级别没有数据库值强制执行.

如何使管理界面实现呢?
如何在Django中使多对多字段可选?

django many-to-many django-admin

179
推荐指数
1
解决办法
6万
查看次数

一对多,多对一和多对多的区别?

好的,这可能是一个微不足道的问题,但我无法想象和理解差异以及何时使用每个差异.关于单向和双向映射等概念如何影响一对多/多对多关系,我也有点不清楚.我现在正在使用Hibernate,所以任何与ORM相关的解释都会有所帮助.

举个例子,假设我有以下设置:

public class Person{
    private Long personId;
    private Set<Skill> skills;
    //Getters and setters
}

public class Skill{
    private Long skillId;
    private String skillName;
    //Getters and setters
}
Run Code Online (Sandbox Code Playgroud)

那么在这种情况下我会有什么样的映射?这个具体示例的答案肯定是值得赞赏的,但我也非常希望概述何时使用一对多和多对多以及何时使用连接表与连接列以及单向与双向.

orm many-to-many hibernate one-to-many

129
推荐指数
6
解决办法
9万
查看次数

使用额外列映射多对多关联表

我的数据库包含3个表:用户和服务实体具有多对多关系,并与SERVICE_USER表连接,如下所示:

用户 - SERVICE_USER - 服务

SERVICE_USER表包含其他BLOCKED列.

执行此类映射的最佳方法是什么?这些是我的实体类

@Entity
@Table(name = "USERS")
public class User implements java.io.Serializable {

private String userid;
private String email;

@Id
@Column(name = "USERID", unique = true, nullable = false,)
public String getUserid() {
return this.userid;
}

.... some get/set methods
}

@Entity
@Table(name = "SERVICES")
public class CmsService implements java.io.Serializable {
private String serviceCode;

@Id
@Column(name = "SERVICE_CODE", unique = true, nullable = false, length = 100)
public String getServiceCode() {
return this.serviceCode;
}
.... …
Run Code Online (Sandbox Code Playgroud)

mapping many-to-many hibernate jpa jointable

129
推荐指数
2
解决办法
11万
查看次数

MongoDB多对多关联

你会如何与MongoDB进行多对多的关联?

例如; 假设您有一个Users表和一个Roles表.用户有很多角色,角色有很多用户.在SQL中,您将创建一个UserRoles表.

Users:
    Id
    Name

Roles:
    Id
    Name

UserRoles:
    UserId
    RoleId
Run Code Online (Sandbox Code Playgroud)

MongoDB中如何处理相同类型的关系?

many-to-many associations mongodb

128
推荐指数
4
解决办法
6万
查看次数

SQL - 多对多表主键

在阅读此问题中的评论后,会出现此问题:

数据库设计

创建多对多表时,应该在两个外键列上创建复合主键,还是创建自动增量代理"ID"主键,并将索引放在两个FK列上(也许一个独特的约束)?在每种情况下插入新记录/重新索引对性能有何影响?

基本上,这个:

PartDevice
----------
PartID (PK/FK)
DeviceID (PK/FK)
Run Code Online (Sandbox Code Playgroud)

与此:

PartDevice
----------
ID (PK/auto-increment)
PartID (FK)
DeviceID (FK)
Run Code Online (Sandbox Code Playgroud)

评论者说:

使两个ID成为PK意味着表按照该顺序在磁盘上进行物理排序.因此,如果我们插入(Part1/Device1),(Part1/Device2),(Part2/Device3),然后(Part1/Device3),数据库必须将表拆开并在条目2和3之间插入最后一个.许多记录,这变得非常有问题,因为它涉及每次添加一个数据,数千或数百万条记录.相比之下,自动增量PK允许将新记录添加到最后.

我问的原因是因为我一直倾向于使用没有代理自动增量列的复合主键,但我不确定代理键是否实际上更具性能.

sql many-to-many primary-key

118
推荐指数
4
解决办法
5万
查看次数

插入/更新多个到多个实体框架.我该怎么做?

我正在使用EF4和它的新功能.我的项目中有很多对很多,似乎无法解决如何插入或更新.我已经构建了一个小项目,只是为了看它应该如何编码.

假设我有3个表

  1. 类:ClassID-ClassName
  2. 学生:StudentID-FirstName-Surname
  3. StudentClass:StudentID-ClassID

添加所有关系并通过模型浏览器更新模型后,我注意到StudentClass没有出现,这似乎是默认行为.

现在我需要同时进行插入和更新.你怎么做呢?我可以下载示例的任何代码示例或链接,还是可以节省5分钟?

c# many-to-many entity-framework

101
推荐指数
4
解决办法
11万
查看次数

Django从ManyToMany关系中删除对象

如何在不删除实际对象的情况下从多对多关系中删除对象?

例:

我有模特MoodsInterest.

Mood有一个多对多的字段interests(这是一个models.ManyToManyField(Interest)).

我创建了一个Moods被调用的实例my_mood.在my_moods我的兴趣领域,我my_interest有意义

>>> my_mood.interests.all()
[my_interest, ...]
Run Code Online (Sandbox Code Playgroud)

如何my_interestmy_mood不删除任何模型实例的情况下删除?换句话说,如何在不影响相关模型的情况下删除关系?

django many-to-many

96
推荐指数
3
解决办法
7万
查看次数