問題タブ [foreign-key-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.

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

django - Django:多対1のフィールドとデータの整合性

在庫システムを運営している人がいるとしましょう。各人にはいくつかの車があり、各車には非常に多くの部品があります(たとえば、数千)。

人のBobは、Djangoフォームを使用して車を作成します。次に、ボブはいくつかのパーツを作成します。Djangoがパーツが特定の車に属していること、およびParts.ForeignKey(Car)フィールドに選択できるのは特定の車のみであることを知っているのは、フォームレベルのみです。パーツを作成するときは、車の選択をボブが所有する車のみに制限するために、フォームのコンストラクターなどをいじる必要があります。

フォームレベルでこの所有権を強制することは、まったく適切または安全ではないようです。まず、他のユーザーの車には、車の所有者以外はアクセスできないようにする必要があるようです。現在、ソリッドフォームプログラミングのみが他の人の車を見ることができません!第二に、このようにコンストラクターを変更して問題を処理するのはお粗末なようです。あなたはこれについてどう思いますか、そしてこれを強制する方法はありますか?

0 投票する
4 に答える
923 参照

mysql - mysql の削除とデータベースの関係

テーブルから複数の行を削除しようとしているときに、データベースの関係が原因でそれらの行の 1 つを削除できない場合はどうなりますか?

リレーションシップによって制約されていない行は引き続き削除されますか? それとも、削除全体が失敗しますか?

0 投票する
4 に答える
3913 参照

database - データベース設計でマスターと子にする必要があるテーブル

私はすぐにデータベース設計の内外を学習しています (1 週間前の時点では、私にとっては初めてのことでした) が、すぐには明らかではないいくつかの質問に出くわしているので、明確にすることを望んでいました。 .

私が正しい質問は、外部キーに関するものです。設計の一部として、Companyテーブルがあります。もともと、アドレス情報をテーブル内に直接含めていましたが、3NF を実現することを望んでいたため、アドレス情報を独自のテーブルAddressに分割しました。データの整合性を維持するために、INT として「addressId」という名前の行をCompanyに作成しました。Addressテーブルには、対応する addressId が主キーとして含まれています。

私が少し混乱しているのは (または、正しく行っていることを確認したいこと)、どのテーブルをマスター (参照) テーブルにするか、どのテーブルを子 (参照) テーブルにするかを決定することです。最初にこれを設定したとき、Addressテーブルをマスターに、Companyを子にしました。ただし、会社ごとに 1 つのアドレスしか存在しないはずであり、会社の行が削除された場合は、対応するアドレスも削除 (CASCADE 削除) する必要があるため、これは間違っていると考えています。

私はこれに完全に間違ったアプローチをしている可能性があるため、外部キーを使用するときにテーブル間の関係をどのように考えるのが最善かについての良い経験則をいただければ幸いです。ありがとう!

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

python - SQLAlchemy で列が null であることを条件とするリレーションを指定するにはどうすればよいですか?

この質問の正しいタイトルがわかりません。次のスキーマがあります。

  • 案件は WorkItem と一対多の関係にあります。
  • WorkItem は、LineItem と 1 対 1 (または 1 対 0) の関係にあります。

Matters と WorkItems の間に次の関係を作成しようとしています

これはスローします:

これは、primaryjoin の 2 番目の句が _Null 型のオブジェクトを返すと言っているようですが、"table" 属性を持つものを期待しているようです。

これは私にとってはかなり簡単なように思えますが、明らかな何かが欠けていますか?

アップデート

答えは、primaryjoin行を次のように変更することでした。

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

php - 教義の記録に使用されている関係があるかどうかをテストする方法

私は他のテーブルとの(タイプDoctrine_Relation_AssociationDoctrine_Relation_ForeignKeyの)いくつかのオプションの関係を持つ教義テーブルを使用しています。そのテーブルのレコードが関連テーブルのレコードと接続しているかどうかをテストするにはどうすればよいですか。

これが私の質問をより明確にするための例です。ユーザーがいて、ユーザーがユーザーグループと多対多の関係を持ち、ユーザーが1つのユーザーロールを持つことができると仮定します。特定のユーザーがユーザーグループの一部であるか、ロールを持っているかをテストするにはどうすればよいですか。

解決策は私が信じているところから始まります

ユーザーと他のテーブルの間にいくつの関係があっても機能する一般的なソリューションを探しています。

ありがとう!

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

database-design - Doctrine の複合外部キー

適切な用語を使用しているかどうかはよくわからないので、最初に問題を説明してみます。

私は相互参照表 を持っており、これにCompetenceCollabは人々とその能力との関連が含まれています。このテーブルには、人の ID と能力の ID という 2 つの主キーがあります。ここまでは、すべて問題ありません。

ただし、追加しなければならない新機能は次のとおりです。人々は、他の人々の能力に評価を追加できる必要があります。基本的に、これは新しいテーブルを追加する必要があることを意味します。これには、メモ、誰がそれを提供したか、およびCompetenceCollabテーブルへのリンクが含まれます。ある同僚は、彼が「代替キー」と呼んだものを使用して、 の各プライマリ列に 1 つずつ、2 つの外部キーを定義CompetenceCollabし、各評価が能力と人に関連付けられていることを何らかの方法でデータベースに伝えることができると言いました。

だから私の質問は次のとおりです。

  • まず、このデザインは完全に狂っているように見えますか? もしそうなら、どうすればよいですか?
  • Symfony で Doctrine ORM を使用する必要があります。それを使ってこのようなことは可能ですか?はいの場合、誰かが YAML ファイルでそれを定義する方法を教えてくれませんか?

助けてくれてありがとう、コメントでお気軽に質問してください。私が本当にそんなに明確だったかどうかはわかりません。

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

php - Kohana-v3 ORM の親関係

Kohana Framework のバージョン 3 から始めたところです。$_has_many などで少し作業しました。

これでテーブルページができました。主キーは pageID です。テーブルには、parentPageID という列があります。$page->parent->find()ここで、このようにアクセスすると、parentPageIDで識別されるページを返すORM モデルを作成したいと考えています。

私はすでに次のものを持っています:

しかし、それは機能しません。テーブルから最初のページを返すだけです。最後のクエリは次のように述べています。

誰かがこれを解決する方法を知っていますか?

私はこれができることを知っています:$parent = $page->parent->find($page->parentPageID);しかし、それはそうでなければならず、よりきれいにすることができます(私は思います)。

解決済み、以下の私の回答を参照してください。

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

ruby-on-rails - Rails の外部キー関係

私は Rails の初心者であり、Rails は、テーブルの作成中に移行ファイルのモデル レベルとデータベース レベルで外部キー関係を強制することを読みました。本当に必要なのか、どんなメリットがあるのか

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

symfony1 - doctrine findby 関係

教義を使用してデータのサブセットを選択するのに問題があります。

私は3つのテーブルを持っています

所在地 連絡先 Contact_location

contact テーブルと location テーブルには名前と ID が保持され、もう一方のテーブルには ID のみが保持されます。例えば:

教義では、ref_class として contact_location を使用して、location テーブルと contact テーブルの間に多対多の関係があります。

私がやりたいことは、場所のページで、たとえば loc_id = 1 のすべての連絡先を見つけたいということです。

私は試した:

教義が関係を見てそれを取得することを望んでいますが、そうではありません。

関連する関連テーブルでドクトリン検索を行うにはどうすればよいですか? Findbyを使用して実行できると読みましたが、ドキュメントが不明確です。

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

sql - SQL - 依存関係を持つ 2 つの外部キー

現在の構造は次のとおりです。

つまり、列定義を行にマッピングしています。場合によっては、これらの行にサブタイプがあり、それらに固有の列定義があります。または、サブタイプに固有の列定義を独自のテーブルから吊るすか、RowType と RowSubType のデータを 1 つのテーブルに結合して 1 つの ID で作業することもできますが、どちらがより良い解決策であるかはわかりません (ほとんどの場合、特定の RowType/RowSubType の ColumnDefs をプルすることになるため、どちらかといえば後者に傾倒します)。

現在の設計は SQL 冒涜ですか?

現在の構造を保持する場合、RowSubTypeID が ColumnDef で指定されている場合、それが RowTypeID で指定された RowType に対応している必要があることをどのように維持しますか? トリガーでこれを強制しようとする必要がありますか、それとも問題を解決する単純な再設計が欠けていますか?