タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

GAEとDBに関するNilfsのブックマーク (3)

  • App Engine Recipe - Getting db.ReferenceProperty key without loading entity

    class Foo(db.Model): linked = db.ReferenceProperty() someFoo = Foo.get_by_id(1) # Assume we've got an entity with id = 1 # Get key of linked Foo without loading linked entity linkedFooKey = Foo.linked.get_value_for_datastore(someFoo) See discussion here: http://groups.google.com/group/google-appengine/msg/c970bb3636acfa51 Note a suggestion in the above discussion to use a metaclass for automa

    Nilfs
    Nilfs 2010/02/21
    db.ReferencePropertyを使ったときに参照先のエンティティを読み込まない方法
  • GAEで簡単な多対多的なモノ - When it’s ready.

    db.ReferenceProperty(db.Mode)を使って、テーブルを作る。 (http://ondras.zarovi.cz/sql/demo/) こんな感じに、テーブルを設計した。MySQL用のER図なので、フィールドの名前が違うけどなんとなくやりたい事は通じると思う。っていうか、ワカレ。 左のTableというテーブル内のid_Coreとid_Tagが、ReferencePropertyで定義されるFKとなる。 モデルは class Table(db.Model): ref_core = db.ReferenceProperty(Core) ref_tag = db.ReferenceProperty(Tag) create_at = db.DateTimeProperty(auto_now_add = True) と言う風に書いてみた。 やりたい事 文章(以下Core)と一緒

    GAEで簡単な多対多的なモノ - When it’s ready.
    Nilfs
    Nilfs 2010/02/21
    多対多をやるときに調べよう
  • トランザクションとエンティティグループ - スティルハウスの書庫の書庫

    Datastoreのトランザクション エンティティグループ単位でACIDを保証 Bigtableは行単位のACIDしか保証しない。Datastoreではエンティティグループ単位でのACIDを保証している 楽観的排他制御(optimistic lock)を実装 エンティティグループのrootエンティティにて、トランザクションの最終コミット時間のタイムスタンプを記録 トランザクションの開始時に同タイムスタンプを確認し、コミット時にタイムスタンプを再度確認する タイムスタンプが変化していなければ、更新内容を保存して、タイムスタンプを更新する タイムスタンプが変化してれば、他のトランザクションとの競合が発生しているので、トランザクションをロールバックする RDBの悲観的排他制御(SELECT FOR UPDATE)のようにエンティティをロックしないので、スループットは高いが、競合時のリトライが必要

    トランザクションとエンティティグループ - スティルハウスの書庫の書庫
    Nilfs
    Nilfs 2010/02/15
  • 1