python - موقع - كم تبلغ مساحة قاعدة العديد




سكلالشيمي العديد إلى الكثير من اليتيم الحذف (3)

الطريقة التي تعاملت بها بشكل عام هذه هي أن يكون لديك وظيفة على المستخدم أو المجموعة تسمى left_group. عندما تريد من المستخدم مغادرة مجموعة، يمكنك استدعاء تلك الوظيفة، ويمكنك إضافة أي آثار جانبية تريد في هناك. على المدى الطويل، وهذا يجعل من السهل لإضافة المزيد والمزيد من الآثار الجانبية. (على سبيل المثال عندما تريد التحقق من السماح لشخص ما بمغادرة مجموعة).

أحاول استخدام سكلالشيمي لتنفيذ نموذج أساسي للمستخدمين مجموعات حيث يمكن للمستخدمين الحصول على مجموعات متعددة والمجموعات يمكن أن يكون العديد من المستخدمين.

عندما تصبح مجموعة فارغة، أريد أن يتم حذف المجموعة، (جنبا إلى جنب مع غيرها من الأشياء المرتبطة المجموعة.لحسن الحظ، تتالي سكلالشيمي يعمل بشكل جيد مع هذه الحالات أكثر بساطة).

المشكلة هي أن تتالي = 'كل، حذف-اليتيم' لا تفعل بالضبط ما أريد؛ بدلا من حذف المجموعة عندما تصبح المجموعة فارغة، فإنه يحذف المجموعة عندما يترك أي عضو المجموعة.

إضافة مشغلات لقاعدة البيانات يعمل بشكل جيد لحذف مجموعة عندما يصبح فارغا، إلا أن مشغلات يبدو لتجاوز معالجة سلسلة سكلالشيمي حتى الأشياء المرتبطة مع مجموعة لا تحصل على حذفها.

ما هي أفضل طريقة لحذف مجموعة عندما يغادر جميع أعضائها ويكون هذا الحذف تتالي للكيانات ذات الصلة.

أنا أفهم أنني يمكن أن تفعل هذا يدويا من خلال إيجاد كل مكان في التعليمات البرمجية حيث يمكن للمستخدم ترك مجموعة ومن ثم القيام بنفس الشيء مثل الزناد ومع ذلك، أخشى أن أفتقد الأماكن في التعليمات البرمجية (وأنا كسول).


أعتقد أنك تريد cascade='save, update, merge, expunge, refresh, delete-orphan' . هذا سوف يمنع "حذف" سلسلة (التي تحصل عليها من "جميع") ولكن الحفاظ على "حذف-اليتيم"، وهو ما كنت تبحث عنه، وأعتقد (حذف عندما لا يكون هناك المزيد من الآباء والأمهات).


كان لي نفس المشكلة منذ حوالي 3 أشهر، لدي وظيفة / العلامات العلاقة وأراد حذف العلامات غير المستخدمة. سألت على إيرك و سا المؤلف قال لي أن الشلالات على العديد من العلاقات إلى العديد من غير معتمدة، أي نوع من المنطقي لأنه لا يوجد "الوالد" في كثير لكثير.

ولكن توسيع سا سهل، يمكنك ربما استخدام أتريبوتيكستنسيون للتحقق مما إذا كانت المجموعة فارغة عندما تتم إزالتها من مستخدم وحذفه من هناك.





sqlalchemy