タグ付けされた質問 「many-to-many」



5
Rails find_or_create_by複数の属性?
find_or_create_byというアクティブレコードには、便利な動的属性があります。 Model.find_or_create_by_<attribute>(:<attribute> => "") しかし、複数の属性でfind_or_createを実行する必要がある場合はどうなりますか? GroupとMemberの間のGroupMemberと呼ばれるM:M関係を処理するモデルがあるとします。member_id = 4のインスタンスを多数持つことができますが、member_id = 4とgroup_id = 7のインスタンスを2回以上使いたくありません。 GroupMember.find_or_create(:member_id => 4, :group_id => 7) これを処理するより良い方法があるかもしれないと思いますが、find_or_createのアイデアの便利さを気に入っています。

1
Djangoで多対多フィールドをオプションにするにはどうすればよいですか?
多対多の関係(related_name、ではなくthrough)があり、管理インターフェースを使用しようとしている場合、最初のエントリを作成するために存在する必要はありませんが、関係の1つを入力する必要があります。 イベント主催者のアプリを作成しています。モデルが多対多の関係にあるEventと想像してみてくださいGroup。 Django related_nameは他の2つのテーブルのインデックスを使用して別のテーブルを作成します。 しかし、この追加のテーブルにデータを入力する必要がある理由はわかりません。 phpMyAdminを介してデータベースを操作する場合、Groupを登録せずにを作成できます。これEventは、2つの間の接続が別のテーブルを介してのみ行われ、特定のレベルでのデータベース値の強制がないためです。 管理インターフェイスにこれを実現させるにはどうすればよいですか? Djangoで多対多フィールドをオプションにするにはどうすればよいですか?

8
1対多、多対1、多対多の違いは?
わかりましたので、これはささいな質問かもしれませんが、違いを視覚化して理解し、それぞれをいつ使用するか理解できません。また、単方向マッピングや双方向マッピングなどの概念が1対多/多対多の関係にどのように影響するかについても、少し不明確です。私は現在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 } したがって、この場合、どのようなマッピングが必要になりますか?この特定の例に対する回答は間違いなく高く評価されていますが、1対多と多対多のどちらを使用するか、結合テーブルと結合列を使用する場合と単方向と双方向を使用する場合の概要についても教えてください。

4
MongoDB多対多協会
MongoDBと多対多の関連付けをどのように行いますか? 例えば; たとえば、UsersテーブルとRolesテーブルがあるとします。ユーザーには多くの役割があり、役割には多くのユーザーがいます。SQLランドでは、UserRolesテーブルを作成します。 Users: Id Name Roles: Id Name UserRoles: UserId RoleId MongoDBで同じ種類の関係はどのように処理されますか?


3
追加の列を使用した多対多関連テーブルのマッピング
私のデータベースには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 …

5
SQL-多対多テーブルの主キー
この質問は、この質問のコメントを読んだ後に出てきます。 データベース設計 多対多のテーブルを作成する場合、2つの外部キー列に複合主キーを作成するか、自動インクリメントサロゲート "ID"主キーを作成し、2つのFK列(およびおそらく一意の制約)?いずれの場合も、新しいレコードの挿入/再インデックス付けのパフォーマンスにどのような影響がありますか? 基本的に、これ: PartDevice ---------- PartID (PK/FK) DeviceID (PK/FK) 対これ: PartDevice ---------- ID (PK/auto-increment) PartID (FK) DeviceID (FK) コメンターは言う: 2つのIDをPKにすることは、テーブルがディスク上で物理的にその順序でソートされることを意味します。したがって、(Part1 / Device1)、(Part1 / Device2)、(Part2 / Device3)を挿入すると、(Part 1 / Device3)データベースはテーブルを分割し、最後のテーブルをエントリ2と3の間に挿入する必要があります。多くのレコードでは、レコードが追加されるたびに数百、数千、または数百万のレコードをシャッフルする必要があるため、これは非常に問題になります。対照的に、自動インクリメントPKを使用すると、新しいレコードを最後まで追加できます。 私が質問している理由は、代理の自動インクリメント列がない複合主キーを常に実行する傾向があるためですが、代理キーの方が実際にパフォーマンスが高いかどうかはわかりません。

3
DjangoがManyToMany関係からオブジェクトを削除する
実際のオブジェクトを削除せずに、多対多の関係からオブジェクトを削除するにはどうすればよいですか? 例: 私はモデルを持っているMoodsとInterest。 Mood多対多フィールドinterests(これはmodels.ManyToManyField(Interest))があります。 私はのインスタンスの作成Moodsと呼ばれるがmy_mood。でmy_moods、私が持っているの利益のフィールドmy_interest、意味 >>> my_mood.interests.all() [my_interest, ...] どちらのモデルインスタンスも削除せずにmy_interestからmy_mood削除するにはどうすればよいですか?つまり、関連モデルに影響を与えずに関係を削除するにはどうすればよいですか?

5
多対多エンティティフレームワークの挿入/更新。どうすればいいのですか?
私はEF4を使用していますが、これは初めてです。私のプロジェクトには多対多があり、挿入または更新の方法を理解できないようです。コード化する方法を確認するためだけに、小さなプロジェクトを作成しました。 テーブルが3つあるとします クラス:ClassID-ClassName 学生:StudentID-FirstName-Surname StudentClass:StudentID-ClassID すべての関係を追加し、モデルブラウザを介してモデルを更新した後、StudentClassが表示されないことに気付きました。これはデフォルトの動作のようです。 次に、挿入と更新の両方を行う必要があります。どうやってやるの?サンプルをダウンロードできるコードサンプルやリンクはありますか、それとも5分の余裕がありますか?


4
Djangoフィルター多対多を含む
多対多の関係で多数のオブジェクトをフィルタリングしようとしています。trigger_rolesフィールドに複数のエントリが含まれている可能性があるため、containsフィルタを試しました。しかし、それは文字列で使用するように設計されているので、この関係をどのようにフィルタリングするかはほとんど無力です(values_list()atmは無視できます)。 この関数は、ユーザープロファイルに添付されています。 def getVisiblePackages(self): visiblePackages = {} for product in self.products.all(): moduleDict = {} for module in product.module_set.all(): pkgList = [] involvedStatus = module.workflow_set.filter(trigger_roles__contains=self.role.id,allowed=True).values_list('current_state', flat=True) 私のワークフローモデルは次のようになります(簡略化): class Workflow(models.Model): module = models.ForeignKey(Module) current_state = models.ForeignKey(Status) next_state = models.ForeignKey(Status) allowed = models.BooleanField(default=False) involved_roles = models.ManyToManyField(Role, blank=True, null=True) trigger_roles = models.ManyToManyField(Role, blank=True, null=True) …

8
子クラスの名前を知らなくても、djangoでオブジェクトの子クラスにアクセスするにはどうすればよいですか?
Djangoでは、親クラスとそれを継承する複数の子クラスがある場合、通常はparentclass.childclass1_setまたはparentclass.childclass2_setを介して子にアクセスしますが、必要な特定の子クラスの名前がわからない場合はどうなりますか? 子クラス名を知らなくても、関連するオブジェクトを親->子方向に取得する方法はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.