0

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
}

ただし、このような要求を行うことはできないという印象を受けました。代わりに、複数のデバイスの配列 (それぞれが複数のデバイス情報レコードの配列を含む) を含むことができる単一の構造体を作成する必要があります。

これを行う最善の方法は何ですか?

4

1 に答える 1

1

この場合、構造体の名前として「Kind」を設定するだけです。

ドキュメントから:

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

NewKey は新しいキーを作成します。種類を空にすることはできません。stringID と intID のいずれかまたは両方がゼロでなければなりません。両方がゼロの場合、返されるキーは不完全です。親は完全なキーまたは nil でなければなりません。

たとえば、ユーザーを保存します。

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)

同じロジックに従って、別の構造体型を保存します。

ユーザーをロードするには:

c := appengine.NewContext(r)

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

_, err := datastore.Get(c, k, e)
于 2013-10-16T10:26:12.470 に答える