問題タブ [entity-relationship]
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.
database - ほとんどのテーブルで同じフィールド
データベース プロトタイプには、機能的に異なる複数のテーブルで必要な一連のフィールド (名前、説明、ステータスなど) があります。
これらのフィールドには、ラベル付け、表示、検索、フィルタリングなどのエンド ユーザー機能が常にあります。これらは、外部キー制約の一部ではありません。これをどのようにモデル化する必要がありますか?
次のバリアントを考えることができます。
各テーブルは、これらすべての属性を取得します。この場合、どのように名前を付けますか? 同じ、各テーブル内、またはテーブル名のプレフィックス (usrName、prodName など) 付き
それらをテーブル Attributes に移動し、「コア」テーブルに外部キーを追加して、Attributes.PK を参照します。
上記と同様ですが、外部キーの代わりに、Attributes.PK をそれぞれのコア テーブルでも PK として使用します。
database-design - タグベースの組織で構造を定義するにはどうすればよいですか?
[以前のタイトル:タグベースの組織方法論に関係構造を強制する方法はありますか?]
私にはいくつかのエンティティがあり、それらには一連の属性があります。一部の属性は、エンティティが持つことができる他の属性に影響を与えます。多くの属性はグループに編成され、エンティティは、特定のグループからの特定の数の属性、または場合によっては特定のグループからのある範囲の属性を持つように要求されることがあります。
データベースを使用して、要件、グループ化、除外など、この種のタグ間の関係をモデル化する方法はありますか、それともプログラムされた「ビジネスルール」でのみ可能ですか?理想的には、可能なタグとそれらの関係を簡単に構成できるようにし、それによって柔軟性を高めたいと思います。
私が検討した方法の1つは、タグと可能な関係を設定することです。そうすると、タグとタグが適用された関係のようなテーブルが得られますが、これはかなり脆弱なアプローチのようです。
それで、これはより厳密な方法で可能ですか?もしそうなら、私はそれについてどのように始めますか?
nhibernate - API で多対多の関係を処理する方法
2 つのエンティティ Foo と Bar があり、それらの間に多対多の関係があります。
なぜ Foo が多対多の関係に対して「責任がある」のかについての意味論的議論はないとしましょう。しかし、私たちは Foo が関係に対して責任があると勝手に決定します (つまり、NHibernate では Bar を Inverse としてマークします)。
DB の観点からはこれで十分ですが、私のエンティティ API には問題があります。
Foo がこの関係の責任を負うと判断した場合、Bar.AddFoo() メソッドを作成せずに Bar の関連コレクションを更新するにはどうすればよいでしょうか?
このような操作の後にこれらのエンティティを DB からリロードする必要なく、ドメイン モデルの整合性を維持できるはずだと思います。
更新: コメンターに触発されたコードの微調整。
database - それぞれが最初のテーブルの n 個のデータセットに依存する、あるテーブルと他のいくつかのテーブルとの間の最良の関係?
さまざまなコンテンツ タイプのセットのコメントを保存する 1 つのテーブルがあります。これらは他のテーブル (ニュース、記事、ユーザー) に保存されます。これらのテーブルを接続する最良の方法は何だろうか? 以前のプロジェクトでは、コンテンツの種類ごとに 2 つ目のテーブルを使用していました。それらは、コメント テーブルの ID にマップされた特定のコンテンツの ID を保持していました。したがって、コメントごとに、コメント エントリ自体と「コネクタ」エントリがありました。別の方法は、あらゆる種類のコンテンツに個別のコメント テーブルを使用することです。最後に、どちらの方法にも冗長性の欠陥が含まれています。
どちらを使用する必要がありますか、または1つのソリューションがありますか?
entity-framework - Entity Framework - エンティティの関連付けを使用するにはどうすればよいですか?
データベースに PK/FK 関係 (int) を持つテーブルがあり、それらが Entity Framework デザイナーによってモデル化されている場合、すべてが本来あるべきように見えます。以下のコードを書くことができ、すべてがうまくいくように見えますが、コードを実行すると、project.Status.StatusName でオブジェクト参照がオブジェクトのインスタンスに設定されていないというエラーが表示されます。親エンティティにデータを入力すると、フレームワークが関連するエンティティにデータを入力したという印象を受けました。
entity-framework - Entity Framework - 拡張クラスでエンティティ関係を使用するにはどうすればよいですか?
以下のコードのようにオブジェクトをより簡単に操作できるように、エンティティ フレームワークが作成する部分クラスを拡張しようとしています (エンティティ フレームワークでこれを行うためのより良い方法または例外的な方法があれば教えてください)。
しかしもちろん、次の行に「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます: Me.Status.StatusID = proj.Status.StatusID
部分クラスを拡張するときに、関連するエンティティ値を渡すにはどうすればよいですか? それとも、私がここでやろうとしていることをはるかに簡単に行う方法がありませんか?
xsd - サブクラス間の関係をXMLに反映する方法
XML でサブクラス間の関係を定義するにはどうすればよいですか。たとえば、クラスの研究者には Paper と author の 2 つのサブクラスがあります。
sql - 単一の SQL テーブル内のレコード間の多対多の関係を表す最良の方法は何ですか?
次のようなSQLテーブルがあります。
更新: 元のデータ (州、都市、学校) の既存の階層的な性質が、項目間に単純な関係が必要であるという事実を覆い隠しているため、サンプル テーブルを変更しています。
これらのエンティティ間の双方向の関係を定義して、1 つのエンティティを表示しているユーザーが関連するすべてのエンティティのリストを表示できるようにしたいと考えています。
関係は、エンド ユーザーによって定義されます。
これらの関係をデータベースで表現し、その後クエリを実行して更新する最良の方法は何ですか?
見たところ一通り…
私の直感では、リレーションシップ テーブルは次のようになります。
その場合、指定された entity_id が 4 の場合、関連するすべてのレコード (1 と 5) を取得するにはどうすればよいでしょうか?
同様に、entity_id = 1 のクエリは、2、3、4、および 5 を返す必要があります。
お時間をいただきありがとうございます。質問を明確にすることができるかどうかお知らせください。
sql - MySQL: リレーションシップに参加していない行を見つける
「movies」と「users」の 2 つのテーブルがあります。それらの間には n:m の関係があり、ユーザーが見た映画を記述します。これは、「見た」テーブルで説明されています。今、私は、特定のユーザーについて、彼が見たことのないすべての映画を見つけたいと考えています。私の現在の解決策は次のようなものです:
これはうまく機能しますが、あまりうまくスケーリングしていないようです。これに対するより良いアプローチはありますか?
hibernate - EJB3/JPAのコレクションから単一の「デフォルト」エンティティを熱心にフェッチする方法
複数の電話番号を持つPersonエンティティがあります。
ここで、熱心に取得されるPersonの「デフォルトの電話番号を取得する」メソッドを実装したいと思います。このデフォルトの電話番号は、phoneNumbersセットの電話番号の1つです。これを行う方法はありますか?
私がこれを実装しようとしている理由は、このデフォルトの電話番号を、データベース内の「すべての」人をリストするページにリストするためです。
JPAの初心者として、私は最初に次の方法で試してみました。
しかし、これはもちろん非常に遅いリストページをもたらしました。
では、クエリに基づいてエンティティのコレクションから単一のエンティティを取得する一時的なプロパティを定義する方法はありますか?永続性プロバイダーとしてHibernateを使用しています。