8

与えられた

クラス カテゴリ (db.Model):
   名前 = db.Stringproperty()

ネストされた階層があるとします

-根
 |-a
 | | |-b
 | | |-c
 |-x
   |-y
     |-z1
     |-z2

ここで、aの親はrootbの親はacの親はbなどです。

yノードを からxに移動bz1z2の子のままにしておく簡単な方法はありますかy?

-根
 |-a
 | | |-b
 | | |-c
 | | |-y
 | | |-z1
 | | |-z2
 |-x

つまり、yの親を変更するだけです。

ただし、それが不可能な場合は、必要以上に

  1. 新しいレコードの作成ny = Category(parent=b, name=y)
  2. 親としてy持つ新しいレコードを作成する子ごとに再帰的にny
  3. yとその子を削除するよりも。
4

1 に答える 1

9

親関係はエンティティのキ​​ーにエンコードされ、キーは一度作成されると不変であるため、既存のエンティティのキ​​ーを変更することはできません。そのためには、関連するすべてのアイテムを新しいキーで再挿入する必要があります。

于 2009-05-01T09:36:15.860 に答える