Lassen Sie sagen, ich habe eine TabellePEOPLE
benannt, die Reihen von Person
speichern abruft. Jedoch enthält die Person
slice, struct und Scheibe struct, das heißt, die Superpower, Fahrzeug und Freund Felder sind.Speicher und Golang Scheibe, Struktur und Scheibe der Struktur in Postgresql
Wie soll ich speichern und diese Werte in Postgresql mit Golang abrufen? Ich kann kein praktisches Tutorial zu diesem Problem finden. Verwenden Sie benutzerdefinierte Datentypen oder JSON- oder ORM-Methoden oder erstellen Sie benutzerdefinierte Funktionen, um mit diesen umzugehen? Viele Meinungen da draußen, aber ich kann immer noch keinen funktionierenden Weg finden, dieses Problem zu lösen. Bitte helfen Sie mir.
Ich benutze Ozzo-dbx, aber jede Lösung ist willkommen.
Kann jemand ein funktionierendes Beispiel liefern? Sorry, wenn dies newbie Frage, die Sie reizt, aber ich habe bereits versucht, für ein paar Tage und haben immer versagt ... (T_T)
type Transport struct {
Brand string
Size int
}
type Friend struct {
Name string
IsProgrammer bool
}
type Person struct {
ID int
Name string
Superpower []string //slice
Vehicle Transport //struct
FriendList []Friend //slice of struct
}
Sie können 'slice',' struct' und 'slice of struct' Werte im JSON Format und andere Werte' as is' speichern (so 'ID' als' int', 'Name' als' string' usw.) . Es wird logisch sein :) –
Wie sind die Eigenschaften _SuperPower_, _Vehicle_ und _FriendList_ in der Datenbank gespeichert? Kontrollieren Sie diese Entscheidung oder gibt es verwandte Tabellen für sie? Wenn es an dir liegt, hast du viele Möglichkeiten; Wenn die Datenbankstruktur bereits eingestellt ist, dann müssen Sie nur mit diesen Assoziationen umgehen ... – maerics
Ich möchte diese Felder speichern (* SuperPower *, * Vehicle * und * FriendList *), als ob die Datentypen in Golang. Dies ist das ** einfachste **. Hoffentlich können diese Felder ohne JSON-Codierung gespeichert werden, dann ist das das ** schnellste **. Wenn es möglich ist, ohne relative Tabellen mit Assoziation zu speichern, dann ist das ** elagant **. Wenn möglich, möchte ich mit * Punktnotation * auf die Datenbank zugreifen, zB 'SELECT Person.Vehicle.Brand ...', dann kann das schön ** implementiert werden ** ... ist das möglich? :) –