Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyimpan Struktur Terbenam dalam Meja Tunggal dengan GORM?

Bagaimana untuk Menyimpan Struktur Terbenam dalam Meja Tunggal dengan GORM?

Barbara Streisand
Barbara Streisandasal
2024-11-03 07:22:30312semak imbas

How to Store an Embedded Struct in a Single Table with GORM?

Cara Membenamkan Struktur dengan GORM

Dalam GORM, membenamkan struct membolehkan anda memodelkan struktur data yang mengandungi struktur lain di dalamnya. Ini berguna untuk menyusun data kompleks atau merangkum substruktur dalam jenis utama.

Untuk membenamkan struct, isytiharkan struct utama anda dan benamkan struct bersarang menggunakan operator *. Walau bagaimanapun, GORM biasanya mengendalikan struct terbenam dengan mencipta jadual berasingan untuk setiap struktur bersarang.

Jika anda ingin menyimpan struct terbenam sebagai medan lain dalam jadual utama, anda boleh menggunakan teg gorm:"column:. Teg ini menentukan nama lajur tempat data struct terbenam akan disimpan.

Pertimbangkan contoh berikut:

<code class="go">type A struct {
    Point GeoPoint `gorm:"column:point"`
}

type GeoPoint struct {
    Lat float64
    Lon float64
}</code>

Di sini, medan Point ialah struct GeoPoint terbenam dan teg gorm:"column:point" menyatakan bahawa data GeoPoint akan disimpan dalam lajur titik jadual A Ini membolehkan anda mengakses dan memanipulasi medan struct terbenam (cth., point.Lat) seolah-olah ia adalah medan langsung bagi. struct utama.

Pendekatan ini memberikan fleksibiliti untuk menyimpan struktur terbenam dalam satu jadual tanpa membuat jadual pangkalan data tambahan.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Struktur Terbenam dalam Meja Tunggal dengan GORM?. 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