問題タブ [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 投票する
3 に答える
2533 参照

.net - 外部キー ジェネレーターを使用して NHibernate との 1 対 1 の関連付けをマップするにはどうすればよいですか?

これまでのところ、関連付けは正常に機能します (存在する場合、クラスは適切なインスタンスをUserロードします) が、新しい を作成し、そのプロパティを の新しいインスタンスに設定すると、オブジェクトは保存されません。UserRolesUserRolesUserRolesUserRoles

これが私の要約 User.hbm.xml です。

UserRoles のマッピングは次のとおりです。

UserRoles オブジェクトを User.ID を主キーとして保存する方法を知っている人はいますか? 私はドキュメントを見てきましたが、正直なところ、特に役に立ちません。

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

sql-server - テーブルに挿入せずにSQL ServerでIDENTITY値をインクリメント(または予約)する方法

ID 列の値を予約、スキップ、またはインクリメントする方法はありますか?

1 対 1 の関係で結合された 2 つのテーブルがあります。最初の列には IDENTITY PK 列があり、2 番目の列には int PK (IDENTITY ではない) があります。以前は最初に挿入し、ID を取得して 2 番目に挿入していました。そして、それは正常に動作します。

ここで、最初のテーブルに挿入せずに、2 番目のテーブルに値を挿入する必要があります。

次に、IDENTITY シードをインクリメントして、2 番目のテーブルに挿入できますが、最初のテーブルの ID に「穴」を残す方法を教えてください。

編集:詳細

これは機能します:

もう一度-これは機能します。

質問は、テーブルに挿入せずに ID を取得できますか?

DBCC には所有者権限が必要です。それを行うためのクリーンなユーザー呼び出し可能なSQLはありますか?

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

sql - foreign_key ごとの SQL 最新レコード

次の2つのテーブルがあります。

  • 食材(ID、名前)
  • 材料価格 (id、材料 ID、価格、作成時)

1 つの材料に多くの価格が設定される可能性があります。原材料ごとに入力された最新の価格を取得する最良の方法は何ですか? サブセレクトで簡単にできることはわかっていますが、もっと効率的な方法があるかどうか知りたいです。

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

sql - SQL 2008 で外部キー関係から削除ステートメントを生成しますか?

スクリプト/ツールを使用して、テーブルの関係に基づいて削除ステートメントを生成することは可能ですか?

つまり、テーブル DelMe(ID) があり、最初に削除する必要がある ID への fk 参照を持つ 30 個のテーブルがあります。FK リレーションに基づいて 30 個の削除ステートメントを生成する実行可能なツール/スクリプトはありますか?私のため ?

(ちなみに、関係のカスケード削除について知っていますが、この既存のデータベースでは使用できません)

Microsoft SQL Server 2008 を使用しています

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

ruby-on-rails - Two foreign keys with ActiveRecord? [rails]

I have a User class with reference to a Message class. The message class has a user_id (which is the sender) and a receiver_id. So in the User class I have

and then in the Message class I have

The first relationship -- via user_id -- goes perfectly well. I haven't the slightest idea what to put in the Message class for the second relationship. The messages table is built with both user_id and receiver_id, so the support is there.

Is this even possible?

Also, then I'd have no idea how to get to the messages RECEIVED by a user... or the User who received a message :)

[I know that I can work around this by having a sender table and a receiver table and a messages table and maybe a bunch of other tables (a conversations table!), but I'd like to do it like this, for the fun of it. This application will be used for learning only.]

Also important: where would the docs be for this? This is not very helpful.

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

sql - SQL Server 2005: Null 許容外部キー制約

テーブル セッションとユーザーの間に外部キー制約があります。具体的には、Sessions.UID = Users.ID です。ときどき、Sessions.UID を null にしたいことがあります。これは許されますか?これを行おうとするたびに、FK Constraint Violation が発生します。

具体的には、LINQ を介してセッションに行を挿入しています。Session.User = null; を設定しました。そして、私はこのエラーを受け取ります:

p>

ただし、User プロパティを null にする行を削除すると、SubmitChanges 行で次のエラーが発生します。

p>

どのテーブルにも「cons」というフィールドがなく、5,500 行の DataContext.designer.cs ファイルにも、関連オブジェクトの QuickWatch にも含まれていないため、「cons」が何であるかわかりません。 .

データベースでは、Session.UID は null 許容の int フィールドであり、User.ID は null 非許容の int です。UID がある場合とない場合があるセッションを記録したいのですが、その FK 関係の制約を無効にせずに記録したいと考えています。これを行う方法はありますか?

0 投票する
10 に答える
102091 参照

sql - 外部キーはクエリのパフォーマンスを向上させますか?

Products と ProductCategories の 2 つのテーブルがあるとします。両方のテーブルには、CategoryId に関する関係があります。そして、これがクエリです。

実行計画を作成すると、テーブル ProductCategories はクラスター インデックス シークを実行しますが、これは期待どおりです。しかし、テーブル Products については、クラスター インデックス スキャンを実行するので、疑問に思います。FK がクエリのパフォーマンスの向上に役立たないのはなぜですか?

したがって、Products.CategoryId にインデックスを作成する必要があります。実行計画を再度作成すると、両方のテーブルでインデックス シークが実行されます。また、推定サブツリーのコストが大幅に削減されます。

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

  1. FK は関係の制約に役立ちますが、それ以外に役立つことはありますか? クエリのパフォーマンスは向上しますか?

  2. すべてのテーブルのすべての FK 列 (Products.CategoryId など) にインデックスを作成する必要がありますか?