إعادة استخدام `external_id` بعد حذف موضوع

نحن نستخدم ميزة external_id لإنشاء المواضيع تلقائيًا في تكاملنا. ألاحظ مع ذلك أنه إذا قمنا بحذف موضوع، فلا يمكننا إنشاء موضوع جديد بنفس external_id وبدلاً من ذلك نتلقى الخطأ:

{'action': 'create_post', 'errors': ['External has already been taken']}

هل من الممكن إعادة استخدام نفس external_id بعد حذف موضوع استخدمه؟

أنا على علم بحل بديل تمت مناقشته في مكان آخر باستخدام حقول مخصصة في كائنات المستخدم، ومع ذلك، لا يبدو أن كائنات الموضوع تدعم الحقول المخصصة. هل هناك طريقة؟

هذا لأن المواضيع المحذوفة يتم تمييزها على أنها محذوفة وليست مُزالة من قاعدة البيانات. الرغبة في إعادة ربط معرف بمعرف آخر يبدو فكرة سيئة (لكنك لم تسأل). يمكنك فرض حذف الموضوع فعليًا (قد يكون تقديم وظيفة الحذف الدائم للمنشورات هو الطريقة).

مرحباً @pfaffman
شكراً جزيلاً على الاقتراح وعلى الدفعة للتفكير ملياً في إعادة استخدام external_id بشكل عام.

إعجاب واحد (1)

هل هذه الأعداد الصحيحة مكلفة حقًا؟ :thinking:

(يسعدني أنني كنت مفيدًا بدلاً من ساخر!) أتمنى أن تجد حلاً جيدًا.

التحدي هو أن القيمة التي نستخدمها لـ external_id الخاصة بالموضوع (Topic) يصعب تغييرها (عملية يدوية) بسبب قيود في التطبيق الذي ندمجه معه (CatalogIt - يعرض واجهة برمجة تطبيقات للقراءة فقط). غالبًا ما نقوم يدويًا بحذف وإعادة إنشاء المواضيع أثناء التطوير (هذا كل ما يفعله التكامل - إنشاء مواضيع مناقشة للعناصر في CatalogIt عندما ينقر المستخدم على رابط “ناقش هذا العنصر”)، مما يجبرنا على تغيير هذه القيمة في كل مرة. إذا لم يتم تغيير القيمة بعد حذف الموضوع ونقر المستخدم على رابط “ناقش هذا العنصر” لاحقًا، فإننا نواجه خطأ “external already taken”.

ربما يكون أرشفة الموضوع بدلاً من حذفه فكرة أفضل، أو ربما هناك آلية إخفاء/إظهار يمكننا الاعتماد عليها. أنا غير ملم بـ Discourse، وهناك حاجة لبعض البحث، سأتعمق وأرى ما يمكنني العثور عليه.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.