次の表があります(太字のプライマリキー。イタリックの外部キー)
Customerテーブルに2つの外部キーを設定できますか。これをMySQLに実装するにはどうすればよいですか?
更新済み
私は最終プロジェクトのためにウェブベースの会計システムを開発しています。
アカウントカテゴリ
アカウントタイプ --------------バランス
資産
負債
株式
費用
所得
資産
売掛金
売掛金勘定
ソフトウェアを使用してER(エンティティリレーションシップ)ダイアグラムを作成し、リレーションシップを指定すると、上記のように複数の外部キーが自動的に追加されました。デザインが十分に聞こえませんか?
はい、MySQLはこれを許可します。同じテーブルに複数の外部キーを持つことができます。
詳細はこちら FOREIGN KEY Constraints
create table Table1
(
id varchar(2),
name varchar(2),
PRIMARY KEY (id)
)
Create table Table1_Addr
(
addid varchar(2),
Address varchar(2),
PRIMARY KEY (addid)
)
Create table Table1_sal
(
salid varchar(2),`enter code here`
addid varchar(2),
id varchar(2),
PRIMARY KEY (salid),
index(addid),
index(id),
FOREIGN KEY (addid) REFERENCES Table1_Addr(addid),
FOREIGN KEY (id) REFERENCES Table1(id)
)
スキーマ内の外部キー(Account_Name
およびAccount_Type
)特別な処理や構文は必要ありません。 Customerテーブルで2つの別個の外部キーを宣言するだけです。確かに、これらは意味のある言葉の意味での複合キーを構成するものではありません。
このスキーマには他にも多くの問題がありますが、複数の一意の列、または機能的に別の列に依存する列から主キーを構築することは一般に良いアイデアではないことを指摘しておきます。これらのケースの少なくとも1つが、CustomerテーブルのID列とName列に当てはまるようです。これにより、同じID(異なる名前)で2つの行を作成できますが、これは許可したくないと思います。