Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

EF4.1:Mungkinkah memiliki hubungan nol-atau-satu ke nol-atau-satu (0..1 hingga 0.1)?

Tidak, itu tidak mungkin dan saya ragu itu berfungsi di SQL server. Relasi database mengharuskan salah satu ujungnya menjadi dependen. Ini berarti bahwa ia mereferensikan kunci utama (PK) dari ujung utama - kami menyebutnya kunci asing (FK). Jika kita berbicara tentang relasi satu-ke-satu, FK harus ditandai sebagai unik sehingga hanya satu record dalam tabel dependen yang dapat mereferensikan record tertentu dari tabel utama. Satu-satunya relasi yang valid dalam hal ini adalah 0..1 - 1 dimana prinsipal dapat eksis tanpa ketergantungan tetapi dependen hanya dapat ada jika terkait dengan prinsipal yang ada karena nilai FK-nya harus disetel ke nilai PK dari prinsipal. Secara teoritis FK dapat dibatalkan tetapi itu tergantung pada cara bagaimana database mengimplementasikan batasan unik. Jika database menghitung null sebagai nilai unik lainnya, hanya satu record dependen yang dapat membuat FK disetel ke null (saya pikir ini adalah kasus SQL server).

Di EF ini bahkan lebih rumit karena EF tidak mendukung batasan unik dan karena itu Anda dapat membangun hubungan satu-ke-satu hanya ketika FK di entitas dependen juga PK-nya (=tidak ada cara untuk mengaturnya ke nol). Jika Anda tidak dapat menyetel FK ke null, Anda tidak dapat membuatnya nullable dan karena entitas utama itu harus ada, jika tidak, integritas referensial akan menimbulkan kesalahan.

Solusi terbaik untuk Anda adalah mempertimbangkan Request sebagai entitas utama dan Result sebagai tergantung. Request harus dibuat terlebih dahulu dan harus disimpan di database selama Result . Result harus memiliki nilai PK yang sama (kolom tidak dapat bertambah secara otomatis) sebagai Request yang sesuai (dan PK harus FK untuk Request ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan SSIS, Bagaimana cara menemukan kota dengan populasi terbesar?

  2. Bagaimana cara menambahkan Batasan Default ke Kolom yang ada di Tabel SQL Server - Tutorial SQL Server / TSQL Bagian 91

  3. Cara Menemukan Lokasi File Data dan File Log di SQL Server

  4. Bagaimana cara melampirkan MDF tanpa file log?

  5. Cara membuat daftar file di dalam folder dengan SQL Server