Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyimpan Susunan Integer sebagai Medan Tunggal dalam Model Gorm Menggunakan PostgreSQL?

Bagaimana untuk Menyimpan Susunan Integer sebagai Medan Tunggal dalam Model Gorm Menggunakan PostgreSQL?

Susan Sarandon
Susan Sarandonasal
2024-11-04 11:00:01990semak imbas

How to Store an Array of Integers as a Single Field in a Gorm Model Using PostgreSQL?

Menambah Tatasusunan Integer sebagai Jenis Data dalam Model Gorm

Apabila berurusan dengan model pangkalan data, selalunya perlu menyimpan tatasusunan nilai . Dalam Gorm, ORM rasmi untuk Go, menyimpan tatasusunan integer sebagai medan tunggal dalam PostgreSQL boleh menjadi satu cabaran.

Untuk menangani isu ini, Gorm menyediakan sokongan untuk mengendalikan tatasusunan dengan menggunakan jenis tersuai daripada perpustakaan asas . Dengan memanfaatkan perpustakaan pq, anda boleh menentukan jenis tatasusunan dalam model anda.

Sebagai contoh, pertimbangkan model Gorm yang dikemas kini berikut:

<code class="go">type Game struct {
    gorm.Model
    GameCode    string
    GameName    string
    DeckType    pq.Int64Array `gorm:"type:integer[]"`
    GameEndDate string
}</code>

Di sini, DeckType ditakrifkan sebagai pq.Int64Array , yang mewakili tatasusunan integer. Teg gorm:"type:integer[]" menentukan jenis PostgreSQL sebagai tatasusunan integer.

Untuk memasukkan rekod dengan tatasusunan integer, hanya tetapkan tatasusunan kepada medan DeckType:

<code class="go">dt := []int64{1, 2, 3}

db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>

Dengan menggunakan jenis tersuai daripada pq, anda boleh menyimpan dan mendapatkan semula tatasusunan integer sebagai satu medan dengan lancar dalam model Gorm anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Susunan Integer sebagai Medan Tunggal dalam Model Gorm Menggunakan PostgreSQL?. 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