mysql dbで外部キー関係のセットアップを支援する必要があります

StackOverflow https://stackoverflow.com/questions/4258829

  •  27-09-2019
  •  | 
  •  

質問

したがって、私はInnodbテーブル(製品)と(カテゴリ)を必要とします。製品テーブルの「カテゴリ」フィールドと、カテゴリテーブルの「カテゴリ」フィールドとの関係をセットアップしたかったのです。

ただし、FKを作成しようとすると、製品テーブルの主要なキー「Productid」を選択し、カテゴリテーブルのPK「カテゴリ」にマッピングできます。

たぶん、私は外部キーをセットアップする方法/理由を逃しています。私の考えと私が間違っているかどうか教えてください:

1) 追加すると、カテゴリに製品を追加する必要がありました。カテゴリが存在する必要があるか、最初に作成する必要があります。削除したいカテゴリから製品を削除するために、タスク(プログラムまたはDBバックエンドで)を実行しない限り、カテゴリを削除することはできません。

2) 私は、カテゴリの値が製品テーブルの「カテゴリ」フィールドに保存されることを期待していました。次に、私の見解で表示するときは、カテゴリの値でCategories.nameフィールドを検索する必要があります。

編集:したがって、外国の鍵に関与する2つのフィールドは、同じ、サイズ、タイプなどでなければならないことを理解しています。ただし、ProductIDとcategoryIDをリンクすると、私がやりたいと思っていることとコンテキストでどのように機能しますか。 ProductIDとCategoryIDの間にFKを作成したとき、製品レコードを追加させません。

また、カテゴリ名フィールドと製品カテゴリフィールドは同じタイプ、size..etcですが、外部キータブでそれらを選択するオプションはありませんか?

カテゴリテーブルが各カテゴリの一部である製品を把握するように、どのように設定する必要がありますか。

役に立ちましたか?

解決

OK、残念ながら、私は自分の質問に答えなければなりません。私の技術的な問題のほとんどの理由は、あなたがしようとしている分野を「インデックス化する必要がある」ためです。

私が抱えていた包括的な問題は、製品テーブルの実際の「カテゴリ」varcharフィールドを取り除き、カテゴリテーブルカテゴリドフィールドに存在する値のみを持つカテゴリ体フィールドを作成する必要があるということでした。

次に、製品を介してカテゴリを参照する必要があります。categoryid値。

少なくともこれは私が理解するようになったものです。

他のヒント

ワークベンチにいる場合は、FKに関与する両方の列のタイプ、長さ、属性が同じであることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top