هل هناك طريقة سهلة لتغيير الأصل من سجل في google app engine datstore
-
03-07-2019 - |
سؤال
نظرا
class Category(db.Model): name = db.Stringproperty()
قلت متداخلة الهرمي
-root |-a | |-b | |-c |-x |-y |-z1 |-z2
حيث a
's الوالدين root
, b
's الوالدين a
, c
's الوالدين b
الخ.
هناك طريقة بسيطة التي لا يمكن أن تتحرك عقدة y
من x
إلى b
مثل أن z1
و z2
يظل الأطفال من y
:
-root |-a | |-b | |-c | |-y | |-z1 | |-z2 |-x
هذا يعني ببساطة تغيير y
's الأم.
ومع ذلك ، إذا كان ذلك غير ممكن مما يتطلب
- إنشاء سجل جديد
ny = Category(parent=b, name=y)
و - بشكل متكرر لكل طفل من
y
إنشاء سجل جديد لهny
كأحد الوالدين ، - من حذف
y
و الأطفال.
المحلول
الأصل في العلاقة هو المشفرة في الكيان مفتاح و المفتاح هو غير قابل للتغيير خلقت مرة واحدة, لذلك لا يمكنك تغيير مفتاح القائمة الكيان.من أجل القيام بذلك تحتاج إلى إعادة إدراج كافة البنود ذات الصلة مع مفاتيح جديدة.
لا تنتمي إلى StackOverflow