問題タブ [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.
mysql - MySQL-2つのインデックスを作成します。1つだけがSHOWCREATETABLE出力に表示されます
多対多のリンクテーブルがあり、その上に2つの外部キーを設定しようとしています。私はこれらの2つのステートメントを実行します:
実行すると、次のように表示されるSHOW CREATE TABLE address_list_memberships
と思います。
しかし、代わりに私はこれを取得します:
インデックスが1つしかないように見えます。外部キーを作成するたびにMySQLが参照列にインデックスを自動的に作成するというMySQLのドキュメントと矛盾しているようです。
CocoaMySQLやSQLyogなどのGUIツールを使用するか、コマンドラインで実行するかにかかわらず、テーブルに2つのFKを作成するたびに、この1つのインデックスのみに気づきました。
この謎の照明は非常にありがたいです。
mysql - Rails での外部キー制約のサポート
Ruby on Rails では、移行時に外部キー制約を追加する方法は?
mysql - Null 可能な FK を持つ MySQL 複合 PK
まず、この質問の前に、私は本当にひどいデータ モデラーであると述べさせてください。私は危険なことだけを知っています。
作成中のテーブルには 4 つの外部キーがあり、そのうちの 2 つは同じテーブルを参照しています。そのテーブルの create ステートメントを次に示します。
この記事で気になるインデックスはfk_reputation_log_user
とfk_reputation_log_user1
です。すべてのレピュテーション イベントにはギバーがいますが、レシーバーがいるのは一部だけです。この FK を null 可能にしたいのですが、それを行う方法がわかりません。また、それが「許可」されているかどうかもわかりません。
また、すべての FK 列を主キーの一部にして、重複したログ エントリに対するデータベース レベルの保護を実現するというアイデアも考えましたが、PK 列は NOT NULL である必要があるため、これは機能しません。
詳細が必要な場合は、コメントにその旨を記載してください。ありがとう!
(はい、これは SO が持っているものとあまり似ていない評判システム用です)
python - Django MTMField: limit_choices_to = other_ForeignKeyField_on_same_model?
次のような django モデルがいくつかあります。
ギャラリー モデルの作業を行うために、あらゆる種類の楽しみを持っています。limit_choices_to
このギャラリーと同じサイトに属する写真の選択肢のみを管理者に表示してもらいたいです。これは可能ですか?
django - Django の親保存で ForeignKey オブジェクトへのアクセスを取得する
インライン編集と ForeignKey を使用して、django のモデルに追加されたすべての画像を組み合わせた画像を作成しようとしています。私はこれらのモデルを持っています(簡略化):
次に、AdminInline を使用して Model に Image を追加するので、Model を保存するときに x 個の画像を保存します。
しかし、on_model_saved 関数で Modell.images.all を使用して何かをしようとすると、オブジェクトを取得できません。Modell.save() で実行されるこの関数を取得しました
これは、初めてモデルを保存するのではなく、2回目に何かを印刷するだけです。AdminInline で追加するすべてのアイテムが保存された後に関数を呼び出す方法を知っている人はいますか?
oracle - インデックス化されていない外部キーが TM エンキューの競合につながる
TM Enq
そのため、競合の原因の 1 つは、インデックスのない FK である可能性があると言われています。私の質問はどれですか。
私INSERT INTO Table_B
は録音している を持っていTM Enq Wait
ます。
PK
他のテーブルの親である が含まれており、FK
他の に制約されている列がありますPK
。
では、FK
インデックスを作成する必要があるのはどれですか?そのテーブルの列またはその子?
注: これが TM 競合の唯一の原因ではないことはわかっています。もしそうなら、なぜこれがあり得ないのか説明できますか?
sql - 外部キーを使用してデータベースに新しいアイテムを追加する場合、SQLトリガーを使用して他のテーブルに関連する行を作成する必要がありますか?
SQL 2005を使用して、車両テーブル、車両エンジン、および車両ギアテーブルを含むデータベース設計を実装しています。
各テーブルにはSQLID番号であるIDがあり、各エンジンとギアには車両IDとの関係があります。したがって、車両を作成する前に、エンジンとギアを作成する必要があります。
エンジンとギアを作成するときに、どうすれば車両ID番号を知ることができますか?エンジンとギアテーブルの外部キー制約のため、車両列はまだ作成されていませんか?
車両の作成時に、車両にリンクされたエンジンとギアの空の行を作成する自動トリガーを実装する必要がありますか?しかし、もう一度、どうすれば車両IDを知ることができますか?
sql - カテゴリのタグ付けをサポートするデータベース スキーマを設計する方法は?
各タグがカテゴリにグループ化されていることを除いて、タグ付けのためのデータベース設計のようなものにしようとしています。
たとえば、車両に関するデータベースがあるとします。実際には車両についてあまり知らないとしましょう。そのため、すべての車両にある列を指定することはできません。したがって、車両に情報を「タグ付け」します。
ご覧のとおり、すべての車が製造元とモデルでタグ付けされていますが、他のカテゴリはすべて一致しているわけではありません。車は各カテゴリの 1 つだけを持つことができることに注意してください。すなわち。車には 1 つのメーカーしかありません。
すべてのメルセデスの検索をサポートするデータベース、またはすべてのメーカーを一覧表示できるデータベースを設計したいと考えています。
私の現在のデザインは次のようなものです:
各車のメーカーが 1 つしかない場合を除いて、適切な主キーと外部キーがすべて適切に配置されています。それともできますか?
vehicleTags の複合主キーに外部キー制約を追加できますか? すなわち。複合主キー (vid、tid) を vehicleTags に追加できるのは、同じ vid に対して既に tid が存在しないような行がまだ vehicleTags にない場合に限るような制約を追加できますか?同じシド?
私の推測ではノーです。この問題の解決策は、cid 列を vehicleTags に追加し、新しい複合主キー (vid、cid) を作成することだと思います。次のようになります。
これにより、自動車に 2 つのメーカーが存在することはなくなりますが、tid が cid にあるという情報を複製しました。
私のスキーマはどうあるべきですか?
Tom は、私のデータベース スキーマにあるこの問題に、以前の質問であるHow do you do many to many table outside join?で気付きました。
編集
例では、製造は実際には車両テーブルの列である必要があることを知っていますが、それができないとしましょう。例はほんの一例です。
mysql - MySQL で外部キーが機能しない: 外部列にない値を INSERT できるのはなぜですか?
MySQL でテーブルを作成しました。
これにより、必要なテーブルが正常に作成されました (ただし、「DESCRIBE actions;」コマンドを実行すると、外部キーが MUL 型のキーであることがわかりましたが、これが何を意味するのかわかりません)。ただし、質問テーブルまたはユーザー テーブルに存在しない Q_id または U_id を入力しようとすると、MySQL はこれらの値を許可します。
私は何を間違えましたか?外部キーを持つテーブルが無効なデータを受け入れないようにするにはどうすればよいですか?
更新 1
最後に追加TYPE=InnoDB
すると、エラーが発生します。
エラー 1005 (HY000): テーブル './quotes/actions.frm' を作成できません (errno: 150)
なぜそれが起こるのでしょうか?
更新 2
機能的な外部キーを使用してデータの整合性を確保することが重要であると言われましたが、MySQL では InnoDB を使用しないでください。おすすめは何ですか?
postgresql - null許容参照のSELECT
私は2つのテーブル、作者とスタイルの間に関係があります。すべての作成者はスタイルに関連付けられていますが、作成者にスタイルがない(IS NULL)という特殊なケースがあります。
参照をNULLに設定しても問題はありませんが、作成者とスタイルを選択するためのクエリを実行する際に問題があります。
たとえば、次のクエリを実行します。
(予想どおり)NULLスタイルの作成者を無視するだけです。
左結合のように、NULLスタイルの作成者もリストする選択を行う必要があります(何らかの理由でLEFT JOINを使用できません)。
明示的な結合を含まないソリューションはありますか?