私はインターネット上のどこにも答えが見つからないという質問があります。 データベース設計についてです。FKまたはFPK?リレーショナルデータベース
FPKとFKの違いは何ですか? 私はPKを知っています。
しかし私は、FKまたはFPKを持っているときはいつでも、FK/FPKキーを完全に理解しているわけではありません。
私はインターネット上のどこにも答えが見つからないという質問があります。 データベース設計についてです。FKまたはFPK?リレーショナルデータベース
FPKとFKの違いは何ですか? 私はPKを知っています。
しかし私は、FKまたはFPKを持っているときはいつでも、FK/FPKキーを完全に理解しているわけではありません。
あなたは外部キーと主キーを参照してください。ここ は、キーを説明する興味深い記事です:1が、dowsがメインテーブルにすべてのレコードのレコードが関連していない:あなたは1を関連しているテーブルを持っているとき https://www.essentialsql.com/what-is-the-difference-between-a-primary-key-and-a-foreign-key/
A外国主キーを使用することができます。
例: テーブルT1に情報があり、一部のレコードでユニークな情報レコードがありますが、T1ではすべてではありません。
したがって、何百もの空のセルを含む列を持たないために、別のテーブルT2にデータを保存することにします。
これらは一意のレコード(T1とT2の間に1:1)であるため、T2はプライマリID(T2.T1_id)として外部キーを使用して独自のプライマリキーと外部キーを持つことができます。
CREATE TABLE `T1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `T2` (
`T1_id` int(11) NOT NULL,
`specinfo` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`T1_id`),
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`T1_id`) REFERENCES `T1` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
私はまだ外国の主キーの考えを完全に得ていません: –
「FPK」(外部プライマリキー?)はありません。それはどういう意味ですか?なぜあなたはそれがあると思いますか? "FK"(外来キー)はどういう意味ですか?どの学術(組織/人)教科書を使用していますか?
リレーショナル・モデル(ただし、SQLではありません):スーパー・キーは、一意の値を持つ列のセットです。 (SQL UNIQUE NOT NULL
列セット。)CK(候補キー)は、スーパーキーが含まれていないスーパーキーです。 PKはあなたがPKと呼ぶことを決めたCKです。 FKは、PK(プライマリキー)だけでなく、任意のCKを参照します。列リストのサブロー値は、他の場所のCK列リストのサブロー値として表示する必要があります。
:それはつまり、SQL UNIQUE NOT NULL
列リスト、スーパーキーを参照する、すなわち、FK
宣言は、外国スーパーキーを宣言します。 実際にが参照するスーパーキーが実際にはCK(場合によってはPK)である場合、すなわち実際にはより小さなスーパーキーを含まないスーパーキーです。UNIQUE NOT NULL
またはPK
には、より小さなUNIQUE NOT NULL
またはPK
が含まれません。
「FPK」はありません。それはどういう意味ですか?あなたは "FK"とは何と思いますか?あなたが使用している参照教科書は何ですか? PS私の答えを見てください。 – philipxy