私はSQL Serverの1対多、多対多の関係を作成する方法を知っていますが、1対1の関係を作成することは可能ですか? 1から0または1の関係を作成することは可能ですか?Sqlの関係
Sqlの関係
答えて
はい、ちょうど両方のエンティティにUNIQUE
キー定義、リンクテーブルに両方のエンティティのPRIMARY KEY
Sを置く:、
entityA entityB
1 2
:entityA = 1
がentityB = 2
に関連している場合、このように
myrel(entityA, entityB, UNIQUE(entityA), UNIQUE(entityB))
をentityA = 1
も他のentityB
にもentityB = 2
も他のいずれにも関連付けることはできません。entityA
entityA entityB
UNIQUE(entityA)
UNIQUE(entityB)
CHECK(entityA < entityB)
と変換:
あなたの関係は対称ある場合は、追加CHECK
constrantを定義する(すなわちentityA
とentityB
は、同じドメインともentityA
へentityB
に関連する意味entityA
entityB
に関連に属しています)次のクエリを使用して正規化された正規化された関係:
SELECT entityA, entityB
FROM myrel
UNION
SELECT entityB, entityA
FROM myrel
これは(0-1):(0-1)
の関係です。
あなたはそれが1:1
関係になりたい場合は、entityA
とentityB
両方のドメインであることを、このテーブルを定義します。
myrel(entityA, entityB, UNIQUE(entityA), UNIQUE(entityB))
A(id, PRIMARY KEY(id), FOREIGN KEY(id) REFERENCES myrel (entityA))
B(id, PRIMARY KEY(id), FOREIGN KEY(id) REFERENCES myrel (entityB))
いずれかの表の定義からFOREIGN KEY
を除去することにより、あなたはの対応する部分を変更します関係は1
から(0-1)
までです。
はい、親テーブルの主キーへの外部キーは、従属テーブルの主キーまたは代替キーにするだけです。
約1〜0または1の関係は? –
私が説明したことは、1対0または1の関係です。親テーブルのすべての行の子テーブルにレコードがある必要はありません。 –
2つの方法: 1)pk-pk 1:1の関係。表AおよびBは両方ともPKを有する。 1関係
又は
2)FK/UC-PK 1:1の関係A.のPKにB PKからFKを作成これは 'B' 1のFK側になります。テーブルAにはPKがあり、テーブルBにはAへの外部キーがありますが、BのFKはBのPKにありません。次に、BのFKフィールドにUCを作成します。
約1〜0または1の関係は? –
方法1では、AとBの両方にどのように新しいエントリを挿入しますか?方法2は最終的に「1対0または1」の関係ではありませんか? –
@ArsenMkrt:FKをnullにします。 @Jonathan:方法1は簡単に挿入できます。 BはAに依存するので、最初に行をAに挿入し、次にBの行を挿入します.AはBを指しておらず、BはAを指しています。方法2は1..0..1の関係ではないFKをヌル可能にしないようにします.FK側がオプションの場合はオプションになります。 –
- 1. SQLデータベーステーブルの関係?
- 2. SQLの関係エラー
- 3. コード内のSQLの関係
- 4. SQL Alchemy:孫との関係
- 5. 階層関係のSQL
- 6. C#のSQL依存関係
- 7. SQL親子関係クエリ
- 8. PocketPCへのSQL CEの依存関係
- 9. SQLの多対多テーブルの関係
- 10. NoSQLとSQLとの関係の使用
- 11. SQL Serverの問題の親子関係
- 12. 多対多関係のエンティティSql
- 13. テーブル関係SQL Serverの問題
- 14. SQL Serverの外部依存関係
- 15. SQLサーバーと最適化の関係
- 16. 1:nの関係とSQLクエリ
- 17. SQLクエリ関係1対多の
- 18. LINQ to SQLのマルチレベル関係に参加
- 19. SQL Server:多対多の関係
- 20. 関係プロローグ内の関係
- 21. Linq to Sql多対多関係
- 22. Sqlは関係を変更します
- 23. 以前の関係のないテーブルの関連付け(SQL Server)
- 24. SQLキャッシュ依存関係のパフォーマンスに関する質問
- 25. 複数の同じ関係の関係
- 26. カスタム関係名とのHABTM関係
- 27. 依存関係のプロパティ依存関係
- 28. 依存関係の依存関係
- 29. SQL Serverの2つのテーブルと部分キーの関係
- 30. の取得SQL Serverのクロスデータベースの依存関係
約1〜0または1の関係は? –