Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menentukan Kekangan Utama Asing dalam Gorm for Go?

Bagaimana untuk Menentukan Kekangan Utama Asing dalam Gorm for Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 13:08:10210semak imbas

How to Define Foreign Key Constraints in Gorm for Go?

Cara Mewujudkan Kekangan Utama Asing Menggunakan Gorm

Apabila menguruskan perhubungan entiti dalam pangkalan data menggunakan Go, adalah penting untuk mewujudkan kekangan kunci asing yang jelas. Dalam artikel ini, kami akan meneroka proses mentakrifkan kekangan sedemikian menggunakan Gorm, ORM yang popular untuk Go.

Mentakrifkan Model

Pertimbangkan contoh senario berikut, di mana kami mempunyai dua model:

type User struct {
    ID       uint
    Email    string
    Password string
}

type UserInfo struct {
    UID       uint
    FirstName string
    LastName  string
    Phone     string
    Address   string
    User      User // Represents the foreign key relationship
}

Dalam contoh ini, Pengguna ialah jadual induk dan UserInfo ialah jadual anak. Medan UID dalam UserInfo berfungsi sebagai kunci asing, merujuk medan ID dalam jadual Pengguna.

Kunci Asing menggunakan Gorm

Dalam Gorm sebelum versi 2.0, adalah perlu untuk mencipta asing secara eksplisit kekangan utama dalam skema pangkalan data. Ini dicapai dengan menggunakan kaedah AddForeignKey dalam kod migrasi:

db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")

Nota

Walau bagaimanapun, dari Gorm versi 2.0 dan seterusnya, proses manual ini tidak diperlukan lagi. Gorm secara automatik membuat kesimpulan kekangan kunci asing berdasarkan perhubungan yang ditentukan antara model.

Kesimpulan

Mentakrifkan kekangan kunci asing memastikan integriti data dan menguatkuasakan integriti rujukan antara jadual. Dengan memahami dan menggunakan kaedah yang sesuai dalam Gorm, anda boleh mengurus perhubungan pangkalan data dengan berkesan dalam aplikasi Go anda.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Kekangan Utama Asing dalam Gorm for Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn