Untuk mengelakkan hubungan satu-ke-banyak-ke-banyak yang kompleks dalam pangkalan data, reka bentuk pangkalan data saya adalah bahawa medan dalam jadual tidak mempunyai kunci asing. program ini ditulis dan fungsinya boleh dilaksanakan, tetapi saya mendapati bahawa ia sangat menyakitkan untuk menulis banyak getter dan setter, atau sepatutnya saya tidak merancangnya dengan cara ini dari awal
Reka bentuk ini sangat bagus, anda hanya kekurangan lapisan abstraksi pangkalan data, atau ROM.
Terdapat konsep dalam teori pangkalan data yang dipanggil: CAP.
CAP teori telah dicadangkan oleh Profesor Eric Brewer Semasa mereka bentuk dan menggunakan aplikasi yang diedarkan, terdapat tiga keperluan sistem teras, dan terdapat hubungan istimewa tertentu antara ketiga-tiga keperluan ini. Tiga syarat tersebut adalah seperti berikut:
C: Ketekalan
A: Ketersediaan Ketersediaan
P: Toleransi Partition Toleransi kerosakan partition
Inti teori CAP ialah: Adalah mustahil untuk sistem teragih memenuhi tiga keperluan iaitu ketekalan, ketersediaan dan toleransi kerosakan partition pada masa yang sama, paling banyak, ia hanya boleh memenuhi dua daripadanya baik pada masa yang sama#🎜 🎜#.
Dan kebanyakan pangkalan data nosql berkompromi pada C (konsistensi).konsistensi akhirnya.
1 Pada masa kini, Internet pada asasnya tidak menggunakan kunci asing
2
Dalam aplikasi praktikal, kami biasanya menggunakan program untuk mengawal kunci asing. Bukan di peringkat pangkalan data.
Pertama, kunci asing (di sini dirujuk secara khusus sebagai hubungan pemetaan) dalam pangkalan data hubungan masih sangat berguna
Kedua, kunci asing (di sini dirujuk secara khusus sebagai kekangan kunci asing) tidak sepatutnya wujud.
Aplikasi yang menggunakan kekunci asing semakin kurang. Terdapat agak banyak daripada mereka 10 tahun yang lalu. Terutamanya disebabkan oleh pertimbangan kebebasan perniagaan. Saya suka meletakkan perniagaan sepenuhnya pada bahagian aplikasi, dan pangkalan data hanya digunakan untuk kegigihan.
Apabila saya mula bekerja pada beberapa pangkalan data projek lebih daripada sepuluh tahun yang lalu, pangkalan data juga terlibat dalam perniagaan, tetapi kemudian saya mendapati bahawa ia sangat menyakitkan untuk dikekalkan. Kemudian, semasa penyelenggaraan projek, untuk menangani semua masalah, pakar pangkalan data terpaksa ditambah. Isu ini juga dibangkitkan dalam ringkasan projek. Kos pakar pangkalan data adalah sangat tinggi.