Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mewujudkan Hubungan Utama Asing di Golang menggunakan GORM?
Hubungan Pangkalan Data dengan GORM: Mencipta Kunci Asing
Dalam bidang pangkalan data hubungan, kunci asing berfungsi sebagai pautan penting antara jadual berkaitan. Artikel ini bertujuan untuk membimbing anda tentang cara mewujudkan hubungan kunci asing dalam aplikasi Golang anda menggunakan GORM, perpustakaan ORM (Pemetaan Objek-Kaitan) yang popular.
Memahami Masalah
Anda telah menentukan dua model, User dan UserInfo, dan ingin mewujudkan hubungan kunci asing antara medan UID dan ID mereka. Cabarannya terletak pada memastikan bahawa medan UID dalam model UserInfo merujuk dengan betul medan id dalam model Pengguna.
Penyelesaian
Untuk menyelesaikan isu ini, anda perlu konfigurasikan kekangan kunci asing dalam skema pangkalan data anda selepas menentukan model anda. Ini boleh dicapai menggunakan langkah berikut:
1. Tambah Kunci Asing Semasa Migrasi
Selepas mencipta model, gunakan kaedah AddForeignKey GORM untuk menentukan hubungan kunci asing dalam penghijrahan pangkalan data anda. Tambahkan baris berikut pada kod migrasi anda:
db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")
Barisan ini menetapkan kekangan kunci asing pada lajur UID dalam jadual t_user_info, merujuk lajur id dalam jadual t_user. Ia juga menetapkan gelagat kunci asing kepada "RESTRICT", yang akan menghalang pemasukan atau pemadaman data yang akan melanggar perhubungan.
2. Tetapkan Kunci Asing Persatuan
Dalam model Pengguna anda, anda telah menganotasi medan Pengguna dalam model UserInfo dengan teg kunci asing:
User User `gorm:"foreignkey:u_id;association_foreignkey:id"`
Teg ini memberitahu GORM bahawa Pengguna medan harus digunakan sebagai kunci asing dan ia dikaitkan dengan medan id dalam model Pengguna.
3. Kemas kini Pangkalan Data
Jalankan migrasi pangkalan data untuk menggunakan kekangan kunci asing pada skema anda.
Nota:
Bermula dengan GORM versi 2.0 , tidak perlu lagi menetapkan kekangan kunci asing secara eksplisit dalam anotasi model. Walau bagaimanapun, untuk versi terdahulu, penyelesaian yang digariskan di atas masih terpakai.
Dengan mengikuti langkah ini, anda telah mewujudkan hubungan kunci asing yang betul antara model Pengguna dan UserInfo anda, memastikan medan UID dalam model UserInfo merujuk dengan tepat data dalam jadual Pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Mewujudkan Hubungan Utama Asing di Golang menggunakan GORM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!