Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melaksanakan Kunci Asing dengan Betul dalam Gorm untuk Hubungan Kepunyaan?

Bagaimana untuk Melaksanakan Kunci Asing dengan Betul dalam Gorm untuk Hubungan Kepunyaan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 00:01:02519semak imbas

How to Correctly Implement Foreign Keys in Gorm for a Belongs-To Relationship?

Ralat Hubungan Gorm: Pelaksanaan Kunci Asing yang Betul

Di Gorm, mewujudkan perhubungan antara model adalah penting untuk pengambilan dan manipulasi data yang cekap. Isu terbaru yang dilaporkan melibatkan ralat yang dihadapi semasa cuba mendapatkan data daripada pangkalan data, terutamanya apabila medan "Lokasi" digunakan sebagai kunci asing.

Untuk memahami masalah, mari kita mulakan dengan memeriksa model data yang ditakrifkan untuk perhubungan:

// LocationDescription model
type LocationDescription struct {
    ID       int    `json:"locationID"`
    Name     string `json:"name"`
    IsActive bool   `json:"isActive"`
}

// ConfigurationDescription model
type ConfigurationDescription struct {
    ID         int                 `json:"configurationID"`
    Name       string              `json:"name"`
    IsActive   bool                `json:"isActive"`
    LocationID int                 `json:"location_id"`
    Location   LocationDescription `json:"location,omitempty" gorm:"foreignKey:ID;references:LocationID"`
}

Ralat yang dihadapi, "medan tidak sah ditemui untuk model struct. Medan ConfigurationDescription Lokasi, perlu menentukan kunci asing yang sah untuk hubungan", menunjukkan bahawa Gorm tidak dapat menyertai dengan betul " Medan Lokasi" dengan kunci utama jadual "LocationDescription". Setelah meneliti kod tersebut, ternyata bahawa teg "foreignKey" dan "references" telah digunakan secara salah.

Untuk perhubungan Kepunyaan-Kepada, "foreignKey" harus menyatakan medan kunci model-lokal yang merujuk kunci utama atau unik entiti asing itu. Dalam kes ini, entiti asing ialah "LocationDescription" dan kunci utamanya ialah "ID". Oleh itu, konfigurasi yang sesuai ialah:

    Location   LocationDescription `json:"location,omitempty" gorm:"foreignKey:LocationID;references:ID"`

Selepas membuat pelarasan ini, ralat Gorm harus diselesaikan, membolehkan pengambilan data yang berjaya daripada pangkalan data. Ingat, adalah penting untuk memastikan bahawa kunci asing dan rujukan ditakrifkan dengan betul untuk mewujudkan hubungan yang betul antara model.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kunci Asing dengan Betul dalam Gorm untuk Hubungan Kepunyaan?. 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