Ich versuche, eine viele zu viele Beziehung aufzubauen, so habe ich 3 structs:Datastore - Wie wird der Schlüssel in die Struct ID (golang) eingefügt?
type Orders struct {
ID int64
CustomerID string
etc
}
type Products struct {
ID int64
Name string
Description string
etc
}
type OrderDetails struct {
OrderID int64
ProductID string
Quantity int
}
Ich glaube, dies ist der richtige Weg, es zu tun, aber mein Problem ist jetzt, dass ich weiß nicht, wie man setzen Sie den Datenspeicher Schlüssel in der Struktur ID ohne zwei client.Put Anfragen zu machen, denn soweit ich das beurteilen kann, datastore.IncompleteKey("Products", nil)
nicht den neuen Schlüsselwert bis zurückzukehren, nachdem Sie ihn ..
ich denke, einige Leute empfehlen key *datastore.Key
verwenden würde anstelle von ID int64
, aber ich würde es vorziehen, den Schlüssel zu einer ID
Jede Hilfe wäre sehr willkommen
Wow, genau das, was ich brauchte .. vielen Dank <3 .. aber ich bin wirklich neugierig, warum es ist eine Verschwendung, ich meine, in dem obigen Beispiel, wenn Sie das tun Client.GetAll() auf OrderDetails, wie können Sie Bestellungen und Produkte erhalten, wenn Sie keine Bestell-ID und Produkt-ID speichern? – fisker
@fisker Sie können 'datastore.IDKey()' verwenden, um einen 'datastore.Key' aus einer numerischen ID zu erstellen. Siehe bearbeitete Antwort, hinzugefügt ein Beispiel. – icza
Ahh, ich glaube, ich verstehe ... also wenn ich das ID-Feld für Bestellungen und Produkte behalten möchte (um die ID in der Webanwendung anzuzeigen), dann sollte ich 'datastore: '-'' hinzufügen, damit es nicht verschwendet wird Datenspeicher-Ressourcen, und vor dem Zurückgeben der 'var Order Order'-Struktur (nach dem Ausführen von' client.Get (ctx, orderKey, & Order) ') kann ich' order.ID = orderKey.ID' setzen? – fisker