如何使用Go的dataStore创建数据模型?

I've created a series of structs based on the way I would create tables in mySQL:

type User struct {
    UserID      int
    Email       string
    Password    string
    DateCreated time.Time
}

type Device struct {
    DeviceID      int
    Udid          string
    DateCreated   time.Time
    DateUpdated   time.Time
    IntLoginTotal int
}

type DeviceInfo struct {
    DeviceID       int
    DeviceName     string
    Model          string
    LocalizedModel string
    SystemName     string
    SystemVersion  string
    Locale         string
    Language       string
    DateCreated    time.Time
}

However, I have the impression that I will not be able to make requests like this, and instead I need to create a single struct that can contain an array of multiple devices (each containing an array of multiple device info records).

What is the best way to go about doing this?

In this case, just set the "Kind" as the name of the struct.

From the docs:

func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key

NewKey creates a new key. kind cannot be empty. Either one or both of stringID and intID must be zero. If both are zero, the key returned is incomplete. parent must either be a complete key or nil.

For example to save a User.

c := appengine.NewContext(r)
u := &User{UserID: userid, Email: email, Password: password, DateCreated: datecreated}
k := datastore.NewKey(c, "User", u.UserID, 0, nil)
e := p
_, err := datastore.Put(c, k, e)

Follow the same logic to save a different struct type.

To load a user:

c := appengine.NewContext(r)

k := datastore.NewKey(c, "User", userid, 0, nil)
e := new(User)

_, err := datastore.Get(c, k, e)