2

たとえば、個人とメールの2つのテーブルがあります。

表-個人の列
Indv_ID(PK)
Email_ID

テーブルEメール列Eメール _ID
(PK) Eメール_タイプ(PK)Eメール _アドレス


同じ個人が複数の電子メールを持つことができるという考え方です。したがって、Joeに2つの電子メールがあり、joesIDが100の場合。

**TABLE - INDIVIDUALS**
Indv_ID           Email_ID
100               200

**TABLE - EMAILS**
Email_ID        Email_Type      Email_Address
200             PERSONNEL       joe.john@yahoo.com
200             WORK            joe.john@abc.com    

今、私はこの関係を定義しようとしています。基本的に、INDIVIDUALのEMAIL_ID列とEMAILSのEMAIL_ID&EMAIL_TYPEの間。

外部キー関係を定義しようとすると、次のエラーが発生します。

「テーブルINDIVIDUALSの列が既存の主キーまたはUNIQUE制約と一致しません」

これを処理し、このタイプの関係を定義する方法を教えてください。

4

1 に答える 1

2

目標を達成するための最適な設計は次のとおりです。

表 - 個人列

Indv_ID (PK)

表の電子メールの列

メール_ID (PK)
メールの種類 (PK)
Indv_ID (PK)
電子メールアドレス

そう:

**表 - 個人**
Indv_ID           
100               

**表 - メール**
Email_ID Email_Type INDV_ID Email_Address
300人 100人 joe.john@yahoo.com
400 仕事 100 joe.john@abc.com    

結論:

一人一人がたくさんのメールを持っています。ビジネス ニーズに応じて、Email テーブルの主キーを変更できます。しかし、それはアイデアです。

別のヒント:

整数型または文字値の Email_Type 列を列挙することを検討してください。

于 2013-01-30T12:54:13.420 に答える