Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencipta Hubungan Utama Asing dalam GORM (Sebelum dan Selepas Versi 2.0)?

Bagaimana untuk Mencipta Hubungan Utama Asing dalam GORM (Sebelum dan Selepas Versi 2.0)?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 12:41:15812semak imbas

How to Create Foreign Key Relationships in GORM (Before and After Version 2.0)?

Mencipta Kunci Asing dengan GORM

Mencipta perhubungan kunci asing dalam GORM melibatkan penetapan kunci asing perkaitan, yang memautkan kunci asing dalam kunci sekunder model kepada bidang tertentu dalam primer model.

Masalah:

Dalam senario yang diberikan, model User dan UserInfo bertujuan untuk mempunyai hubungan kunci asing, dengan UID dalam UserInfo merujuk medan id dalam pengguna. Walau bagaimanapun, percubaan kod untuk mencipta perkaitan kunci asing ini nampaknya tidak berjaya.

Penyelesaian:

Untuk mewujudkan perhubungan kunci asing, anda boleh menggunakan AddForeignKey GORM kaedah:

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

Penjelasan:

  • Argumen pertama, "u_id", mewakili medan kunci asing dalam model sekunder (UserInfo).
  • Argumen kedua, "t_user(id)", menentukan jadual dan medan dalam model utama (Pengguna).
  • Argumen ketiga dan keempat, "TERHAD", mentakrifkan gelagat apabila kunci utama dikemas kini atau dipadamkan. Dalam kes ini, ia akan menyekat operasi.

Nota:

Penyelesaian ini digunakan untuk versi GORM sebelum 2.0. Untuk GORM 2.0 dan ke atas, kekangan kunci asing ditambahkan secara automatik apabila menentukan perhubungan.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Hubungan Utama Asing dalam GORM (Sebelum dan Selepas Versi 2.0)?. 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