問題タブ [foreign-keys]

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 投票する
4 に答える
80702 参照

mysql - mysql で on delete cascade を使用するにはどうすればよいですか?

コンポーネントのデータベースがあります。各コンポーネントは特定のタイプです。つまり、コンポーネントと型の間には多対 1 の関係があります。タイプを削除するとき、そのタイプの外部キーを持つすべてのコンポーネントを削除したいと考えています。しかし、私が間違っていなければ、カスケード削除はコンポーネントが削除されたときに型を削除します。私が説明したことを行う方法はありますか?

0 投票する
5 に答える
876 参照

sql - なぜこの種の外部キーが可能なのですか?

SQL標準がこれを受け入れるのはなぜですか?メリットはどれですか?

それらのテーブルがある場合:

これはエラーなしで挿入できます。

注1:これはこの回答から来ています。

注2:これは回避できます。両方の列にnullを設定しないでください。

備考:回避については質問していません。どちらがメリットになるのか興味があります。

参照:

  • Oracleのドキュメントリレーショナルモデルでは、外部キーの値を、参照されているプラ​​イマリキーまたは一意キーの値と一致させるか、nullにすることができます。複合外部キーのいずれかの列がnullの場合、キーのnull以外の部分は、親キーの対応する部分と一致する必要はありません。

  • SQL ServerのドキュメントFOREIGNKEY制約にはnull値を含めることができます。ただし、複合FOREIGN KEY制約のいずれかの列にNULL値が含まれている場合、FOREIGNKEY制約を構成するすべての値の検証はスキップされます。

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

sql - データをコピーし、新しい ID の参照整合性を維持する

データの転送を可能にし、転送先テーブルで外部キーを自動的に更新するツールまたは方法が必要です。

SET IDENTITY_INSERT ON/OFF は、私が探しているものではありません。

例:

次のようなスクリプトを作成したいと思います。

slavesを挿入するとき、元のテーブルと同じ関係を維持するために、master_id の新しい値を知りたいです。

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

sql - SQLで交差した外部キ​​ー

外部キーが交差した2つのテーブルを作成しようとしていますが、作成時に存在しないテーブルを参照することはできません。mysql用にこのようなテーブルを作成する方法はありますか?両方のテーブルを同時に宣言したり、外部キーの評価を遅らせたりするような方法はありますか?

エラーは1005です:mysql 5.0でテーブルblocks.frm(errno 150)を作成できません

SQL:

問題を解決する適切な方法は何ですか?

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

c# - LINQ to SQL では、外部キーを介して追加するときに InsertOnSubmit() が必要ですか?

LINQ to SQL では、外部キーを介して追加するときに InsertOnSubmit() が必要ですか?

つまり、注文と注文明細が外部キーを介して dbml とデータベースでリンクされている、次のことを行うコードがあるとします。

  • 注文を作成します。
  • オーダーを datacontext オーダーに追加します。
  • 注文明細を作成します。
  • 注文に追加.Lines.

注文明細を context.OrderLine コレクションに追加する必要はありますか?

0 投票する
5 に答える
70616 参照

django - 同じテーブルからの2つの外部キーを持つDjangoモデル

同じテーブルの2つの外部キーを持つDjangoモデルが必要でした。これは、従業員用の2つの列(「アクター」と「レシーバー」)を持つイベントテーブルです。しかし、私はこのエラーを受け取ります:

エラー:1つ以上のモデルが検証されませんでした:tasks.task:中間モデルTaskEventには、あいまいで許可されていないEmployeeへの複数の外部キーがあります。

これをモデル化するためのより良い方法はありますか?

テーブルを追加するつもりだと思いTaskEvent_to_Employeeます。その中には、それぞれに関連する2人の従業員のそれぞれに1つずつ、合計2つのレコードがありますTaskEvent。誰かがより簡単な回避策を知っていますか?

0 投票する
7 に答える
55330 参照

mysql - 外部キーは一意でないインデックスを参照できますか?

外部キーとは、単一の行が単一の行を参照する必要があることを意味すると思いましたが、そうではないいくつかのテーブルを見ています。テーブル 1 には、テーブル 2 のカラム 2 に外部キー制約を持つカラム 1 がありますが、カラム 2 に同じ値を持つテーブル 2 には多くのレコードがあります。column2 にも一意でないインデックスがあります。これは何を意味するのでしょうか?外部キー制約は、正しい列に正しい値を持つレコードが少なくとも 1 つ存在する必要があることを意味するだけですか? そのようなレコードが 1 つだけ存在する必要があることを意味していると思いました (null がどのように画像に収まるかはわかりませんが、現時点ではそれほど心配していません)。

更新:どうやら、この動作は私が使用していたMySQLに固有のものですが、元の質問では言及していませんでした。

0 投票する
5 に答える
3831 参照

entity-framework - Entity Framework: 条件付き外部キー

データベースに次のスキーマがあります。

  • BillingReferences (ReferencingType tinyint , ReferencingId tinyint , ReferencedType tinyint , ReferencedId tinyint , IsActive bit ) - すべてのフィールド (IsActive を除く) は一意のインデックスの一部です。
  • BillingType (BillingTypeId tinyint , Name varchar(50) )

ReferencedType および ReferencedType は、BillingTypes の外部キーです。BillingTypes には次の行が含まれます。

BillingTypeId | 名前

1 | ラベル

2 | 国

3 | 支払いプロバイダー

4 | 支払いオプション

5 | 銀行

ReferecingId および ReferencedId は、次のいずれかのエンティティの Id を表します (参照/参照タイプによって異なります)。

  • 銀行(BankId tinyint , Name varchar(50) )
  • (CountryId tinyint , Name varchar(50) )
  • ラベル(LabelId tinyint、名前varchar(50) )
  • PaymentProviders (PaymentProviderId tinyint、名前varchar(50) )
  • PaymentOptions (PaymentOptionId tinyint、名前varchar(50) )

将来、各エンティティにはさらにいくつかの異なる列が追加される予定ですが、今のところは単純化のためのスキーマです。

すべてのエンティティ (国を除く) と国の間に (1- ) の接続があります。ラベルには、 Banks、PaymentProviders、および PaymentOptions への (1-) の接続があります。また、PaymentProviders には PaymentProviders への (1-*) の接続があります。

たとえば、BankId 201 の銀行を CountryId 3003 の国に接続する場合、BillingReferences に次のようなレコードが作成されます。

拡張性を考慮して、接続の種類ごとに接続/参照テーブルを作成しませんでした。別のエンティティを追加する場合は、そのテーブルを追加し、BillingReferences と BillingType にレコードを追加するだけです。

問題は、BillingReferences と各エンティティの間で条件付き外部キーを構成できず、EntityFramework で構成/マップできないように見えることです...

このタイプの実装を使用するチュートリアルや例は見つかりませんでした。接続ごとに参照テーブルを作成する必要がありますか、または EntityFramework でこれを構成する方法はありますか?

助けてくれてありがとう :)

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

xsd - XSD スキーマに外部キー タイプの関係を実装する

私はxmlスキーマに頭を悩ませようとしていますが、理解しようとしているのは、要素が別の、おそらく別のスキーマ全体を参照するリレーショナル型スキーマを行う方法です。xsd:key と xsd:keyref を見てきましたが、私が興味を持っているようなもののようですが、よくわかりません。最初に、xs:ID abd xs:IDREF というタイプの属性を設定しましたが、これは明らかに特定の要素を参照しているわけではありません。

基本的に、要素が同じファイルまたは他のファイル内の他の要素を参照するいくつかの異なるxmlファイルがあります。それは関係データベースによく似ており、私はそれを使用したいと思っていますが、要件は XML ファイルのみを使用することです。関係。小規模なプロジェクトでは機能しますが、スケーラブルではありません。

何かご意見は?