Heim >Backend-Entwicklung >Golang >Wie speichere ich eine eingebettete Struktur in einer einzelnen Tabelle mit GORM?

Wie speichere ich eine eingebettete Struktur in einer einzelnen Tabelle mit GORM?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 07:22:30371Durchsuche

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

So betten Sie eine Struktur mit GORM ein

In GORM können Sie durch das Einbetten einer Struktur Datenstrukturen modellieren, die eine andere Struktur enthalten. Dies ist nützlich, um komplexe Daten zu verschachteln oder Unterstrukturen innerhalb des Primärtyps zu kapseln.

Um eine Struktur einzubetten, deklarieren Sie Ihre Primärstruktur und betten Sie die verschachtelte Struktur mit dem *-Operator ein. Allerdings verarbeitet GORM normalerweise eingebettete Strukturen, indem für jede verschachtelte Struktur eine separate Tabelle erstellt wird.

Wenn Sie die eingebettete Struktur als weiteres Feld in der Primärtabelle speichern möchten, können Sie das Tag „gorm:“column:“ verwenden. Dieses Tag gibt den Namen der Spalte an, in der die Daten der eingebetteten Struktur gespeichert werden.

Betrachten Sie das folgende Beispiel:

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

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

Hier ist das Punktfeld eine eingebettete GeoPoint-Struktur und die gorm:"column:point"-Tag gibt an, dass die GeoPoint-Daten in der Punktspalte der A-Tabelle gespeichert werden. Dadurch können Sie auf die Felder der eingebetteten Struktur (z. B. point.Lat) zugreifen und diese bearbeiten, als wären sie direkte Felder von die Primärstruktur.

Dieser Ansatz bietet die Flexibilität, eingebettete Strukturen in einer einzelnen Tabelle zu speichern, ohne zusätzliche Datenbanktabellen zu erstellen.

Das obige ist der detaillierte Inhalt vonWie speichere ich eine eingebettete Struktur in einer einzelnen Tabelle mit GORM?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn