問題タブ [database-relations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
791 参照

mysql - リレーションが同じキーを指している回数を数える

ご覧のとおり、「visitor」は「resource」にアクセスし、それらの間の関係はvisitor_resourceに作成されます。

特定の「リソース」には、コンテンツに応じて2つの「タグ」があり、それらはresource_tagsのリレーションによって結合されます。

上記のクエリは、訪問者が訪問したすべてのリソースのタグ名を出力します。

ここで、タグが何回表されているかを調べたいと思います。

次のことを考慮してください。リソース1:tag1、tag2リソース2:tag1リソース3:tag2リソース4:tag1

クエリは次のように出力する必要があります:tag1、3 tag2、2

私は次のことを試しました:

しかし、それはcntの数が非常に不合理であり、この特定のユーザーを考慮していないようです。

これはMySQLでも可能ですか?

0 投票する
2 に答える
326 参照

ruby-on-rails - Mongoid埋め込みコレクションを公開するにはどうすればよいですか?

rails3アプリでmongoidをセットアップし、2つのモデルを作成しました。1つのモデルはユーザーであり、もう1つのモデルは記事です。

私は各ユーザーが多くの記事を作成できるので、次のように記述しました。

model / article.rbファイル内、および:

model/user.rbファイル内。

ここで、「app_url / articles / random_article_id」で記事にアクセスすると、次のエラーが発生します。

関係を維持したいのですが、誰でも記事にアクセスできるようにしたいと思っています。どうやってやるの??

0 投票する
1 に答える
330 参照

php - Doctrine 1.2 ORM 継承クラスはその親リレーションにアクセスできません

クラス B のオブジェクトを作成し、フォーム $B-> にアクセスしようとすると、A から継承するクラス A とクラス B、および A と A の比率がそれぞれ 1:M のクラス C (A、C) を持つC->attributeOfC は Doctrine_Record_UnknownPropertyException 'with message' をスローします 未知のレコード プロパティ / 関連コンポーネント

コードの簡単な例:

0 投票する
3 に答える
1490 参照

php - MySQL:カテゴリから投稿を取得する

私はMySQLを学ぼうとしているので、小さなブログシステムを作成しました。

MySQLには3つのテーブルがあります。

posts

categories

post_category_relations

各投稿には複数のカテゴリを含めることができ、それらの関係はpost_category_relationsに保存されます。

category10したがって、index.php?category = 10にアクセスすると、子フォルダーからの投稿も含めて、各投稿に関連するものを取得したいと思いますcategory12

PHPでの未完成のスニペット

これには高度なMySQLスキルが必要になることはわかっていますが、助けていただければ幸いです。私はすでにこれをPHPで作成しましたが、4つのループを使用する必要があります。これは、MySQLで可能な場合、最善の方法ではありません。方法はまだわかりません:)

0 投票する
1 に答える
2561 参照

ruby-on-rails - has_manyの子とhas_manyの親

モデル間の複雑な関係を理解し​​ようとしています。「Skill」と「Occupation」という2つの継承タイプを持つ「Concept」というモデルがあります。基本的に、これは各概念がカテゴリを表すことを意味しますが、概念は、階層ツリーに十分深く入る場合のスキルまたは職業になることもあります。

私はSTIを使用してこの階層を解決しています。したがって、Conceptsテーブルのスキーマは次のようになります。

タイプ列は、コンセプトが実際の「コンセプト」であるか「スキル」/「職業」であるかを決定します。ただし、問題は次の関係にあります。

編集:

  • コンセプトは、単一の親コンセプトに属することができます
  • 職業はひとり親の概念に属することができます
  • スキルは複数の親コンセプトに属することができます
  • スキルには子供がいません
  • 職業には子供がいません

基本的に、次のようなものがあります。

私が説明しようとしていることを、写真が少し明確になっていることを願っています。現在、親子関係を解決するために次の移行を作成しましたが、これを関連付けにマップする方法がわかりません...

最終的には、次の可能性があります。

これが可能であることを願っています...

0 投票する
1 に答える
1344 参照

mysql - InnoDBでリレーションを定義するときのCASCADE

InnoDBでリレーションを定義するときに、CASCADEを表すものは何でしょうか。

アクションに関連するものだと思います:ON DELETE&ONUPDATE。

テーブル内のすべてのリレーションでCASCADEに設定する必要がありますか?

0 投票する
1 に答える
105 参照

ruby - Ruby/Rails で同様の検証/関係を親クラスに抽象化するにはどうすればよいですか?

私はこれらの非常によく似たクラスを持っています:

と:

親に抽出できる、貼り付けていないメソッドもいくつかあります。親のクラス名だけを知る必要があります。私がこれを行うとき:

self.to_sですので、動作しませんCommercialDocument

親クラスでこの動作をどのようにリファクタリングしますか? モジュールに入れてインポ​​ートすることはできますが、ドキュメントの階層全体がほとんど役に立たなくなります。ドキュメントの階層はもう持っているので、できれば使い道があれば使いたいです。

0 投票する
1 に答える
210 参照

hibernate - Hibernate で具体的なクラスの知識がなくても関係をマッピングする

Hibernate での抽象マッピングに関するトピックはたくさんありますが、私のケースに一致するものは見つかりませんでした。

問題:

私のドメイン モデルは、互いに継承しない複数のエンティティで構成されています。例えば:

  • 従業員
  • グループ
  • デパートメント
  • 報告

どこ:

従業員 <-> グループ (n:m)、従業員 -> 部署 (n:1)

この程度なら問題ありません。しかし:

レポートを従業員、グループ、または部門 (1:1) のいずれかにマップできるようにしたいと考えています。(レポートは他の多くの異なるエンティティにマップ可能であるため、例は単純化されています)。さまざまな外部がデータベースに接続する必要があり、他のエンティティの一般的なテーブル構造に関してモデルを変更しないため、すべてのエンティティは独自のテーブルに存在する必要があります。

私が試したこと

  1. クラスごとのテーブルで Hibernate Inheritance 戦略を使用してみましたが、ユーザー、従業員、部門は新しいAbstractEntityからサブクラス化され、親クラスの ID と Name プロパティを共有しています。したがって、ユーザー、従業員、部門にはまだ独自のテーブルがあります。Report <-> AbstractEntityをマップできるようになり、これが機能します。しかし、 Hibernateは内部的にすべてのサブクラス テーブルで大量の結合を行う必要があるため、約 20 以上のレポートがある場合は、予想どおり、これにより重大なパフォーマンスの問題が発生します。

  2. テーブル構造が変更されたため、階層ごとに単一のテーブルはオプションではありません (問題を参照)。さらに、すべてのエンティティは ID と名前のみを共通のプロパティとして共有します。

考えられる解決策

考えられる解決策の 1 つは、自分でマッピングを実装することです。つまり、ID とエンティティ クラスを Report に格納します。AbstractEntity のゲッターは、保存された値に基づいて、どのテーブルからロードして正しいエンティティを返すかを決定できるようになりました。

しかし: ここでの問題は、セッションがレポート クラスに認識されていないため、エンティティ クラスでセッションを行うことができないことです。また、これはロジックとモデル層を混同します。

回避策は、DAO にある種のラッパーを記述することです。これにより、正しいエンティティがデータベースからロードされ、結果に挿入されます。ただし、すべての DAO メソッドをオーバーライドする必要があるため、これは非常にエラーが発生しやすくなります。

質問

だから私の質問は次のとおりです。データベースからのレポートエンティティの取得を何らかの方法でキャッチまたは傍受し、そこに正しいAbstractEntityのロードを挿入する方法はありますか?

または、私が望むことを行うための別のよりエレガントな方法がありますか (;))?

http://community.jboss.org/wiki/GenericDataAccessObjectsのように、DAO を使用する Java EE 環境で EntityManager を使用せずにアノテーションを使用して Hibernate 3.6 を使用しています。

0 投票する
1 に答える
3609 参照

ruby-on-rails - Mongoid(Rails)の2つの1-N関係

シナリオは次のとおりです。

アカウントはどのようにして別のアカウントに評価を与えることができますか?これにより、アカウントに2つのリストが作成されます。私が評価した人と私を評価した人。(my_ratingsおよびratings_given)

これは要約すると次のようになります。

同じエンティティへの複数の1-Nリレーションシップは、Mongoidでどのように機能しますか?

Mongoidのドキュメントでは、エンティティを一緒に使用has_manyおよびリンクできると記載されています。belongs_to

私は現在アカウントにこれを持っています

とこれの評価

ドキュメントはこのケースをカバーしていないので、:asパラメーターを使用して2つを区別する必要があると思いました。

これもリモーティングは正しいですか?

0 投票する
1 に答える
208 参照

database - データベーステーブルの整理-多数のプロパティ

一部のユーザーを格納するデータベースがあります。各ユーザーには、アカウント設定、プライバシー設定、および設定する他の多くのプロパティがあります。それらの物件の数は増え始め、最終的には30物件程度になる可能性があります。

これまで、私はそれを「UserInfo」テーブルに保持し、UserとUserInfoを1対多として関連付けていました(すべての変更のログを保持します)。単一の「UserInfo」テーブルに配置するのは適切ではなく、少なくともデータベースモデルでは、乱雑に見えます。解決策は何ですか?

プライバシー設定、アカウント設定、その他の設定の「グループ」を別々のテーブルに分離し、UserInfoと設定テーブルの各グループの間に1-1の関係を持たせることは、1つの解決策ですが、データを取得するときに遅すぎる(またははるかに遅い)でしょうか?すべてのデータが同時に1つのページに表示されるわけではないと思います。では、各テーブルに1対多の関係を持たせることも解決策になるのではないでしょうか(各グループのログを個別に保持する)。