[解決済み] 複合主キーのNullableカラムの何が問題なのでしょうか?
2022-04-24 09:15:42
質問
ORACLEは、主キーを構成するどの列にもNULL値を認めません。他のほとんどのquot;enterprise-level"システムも同様と思われます。
同時に、ほとんどのシステムで ユニーク NULL可能なカラムに対する制約。
一意制約はNULLを持つことができますが、主キーは持つことができないのはなぜですか?論理的な理由があるのでしょうか、それとも技術的な制限なのでしょうか?
解決方法は?
主キーは、行を一意に識別するためのものです。これは、キーのすべての部分を入力と比較することで行われます。
定義によると、NULLは成功した比較の一部となることはできません。自分自身との比較でさえも (
NULL = NULL
) は失敗します。つまり、NULLを含むキーは機能しないことになります。
さらに、オプションの関係を示すために、外部キーにNULLを使用することができます。 (*) PKでも許可すると、これが壊れてしまいます。
(*) 注意点があります。null可能な外部キーを持つことは、きれいなリレーショナルデータベースの設計ではありません。
2つのエンティティがある場合
A
と
B
ここで
A
は任意に関連付けることができます。
B
の場合、きれいな解決策は解決テーブルを作成することです(例えば
AB
). このテーブルでは
A
と
B
: もし
は
があれば、そのレコードが含まれます。
ない
ということです。
関連
-
MYSQL "Access denied; you need (at least one of) SUPER privilege(s) for this operation" 問題解決
-
SocketTimeoutExceptionが発生しました。読み取りがタイムアウトした問題のトラブルシューティング
-
[Mac] sudo mongod コマンド、プロンプトコマンドが見つかりません。
-
PDOデータベース接続エラー。SQLSTATE[HY000] [2002] そのようなファイルやディレクトリはありません。
-
pymongo.errors.OperationFailure:オーバーフローソートステージのバッファリングデータの使用量が内部制限を超える
-
mysql データが長すぎて列 xxx の解決策にならない
-
[解決済み] Hi/Loアルゴリズムとは?
-
[解決済み] postgresql のセッション/接続を切断する
-
[解決済み] PostgreSQLの場合。コマンドラインからPostgreSQLのデータベースを削除する【終了しました
-
C#でExcelを読み込むとエラーが発生します。外部テーブルが期待された形式ではありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MongoDBコマンド
-
ORA-30926: ソース・テーブルの安定した行のセットを取得できませんか?
-
DB2 SQL エラーの解決法。sqlcode=-420, sqlstate=22018
-
mysql import error [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'.
-
MySQL cumsum(累積)の実装
-
mysql データが長すぎて列 xxx の解決策にならない
-
DB2におけるNULLおよびNULL処理
-
DB2v10.5Express-Cのインストール
-
[解決済み] データベースフィールドの標準的な長さのリスト
-
C#でExcelを読み込むとエラーが発生します。外部テーブルが期待された形式ではありません。