تطبيق تاريخ مراجعة المقال لتطبيق الويب المقيد Java
-
16-09-2019 - |
سؤال
أي أفكار حول كيف أفضل يمكنني تنفيذ تاريخ مراجعة المادة لتطبيق ويب مقره Java وحفظه في AuditLog
يحتوي Stackoverflow بالفعل على هذه الميزة مما يتيح للمرء أن يرى الاختلافات من إصدار واحد إلى آخر، مثل عملاء SVN تقريبا.
هذا هو التصميم أكثر من سؤال التنفيذ.
بالإضافة إلى ذلك: كيف تعرض المرء هذه التغييرات على صفحة الويب؟
إضافة: الحل المقترح
Article
--------------------------------
Integer id
String title
String body
List<Tag> tags
AppUser createdBy
Date createdDate
AuditLog
--------------------------------
Integer id
Integer objectId
Operation operation // enum with UPDATE and DELETE. I won't audit an insert
Date createdDate
AppUser createdBy
String class
String revisionXML
String comment
أ بيات شتوى اعتراض سوف اعتراض عملية حفظ واستخدام كاستور XML. لإنشاء سلسلة XML من الكائن القديم.
يستخدم الفصل والمعرف للحصول على تنقيحات كائن معين.
Google-Diff-Match-Patch سيتم استخدامها لإنشاء ملفات فرق HTML
المحلول
أفضل حل هو استخدام قاعدة بيانات أو تخزين يدعم بالفعل الإصدارات، على سبيل المثال اباتشي jackrabbit..
إذا لم يكن هذا خيارا، فيجب عليك تحديد المكان الذي تريد تخزين المقالات. في نظام الملفات؟ ثم قم بإجراء كل مقالة دليل وحفظ المراجعات كأرقام (00001، 00002، إلخ) ووضع عدد المراجعة الأخيرة في ملف خاص (مثل current
). ثم يمكنك معرفة عدد الإصدارات بسرعة (انظر فقط إلى current
) وتذهب إلى الأمام والعودة.
إذا كنت تستخدم قاعدة بيانات، فقم بإضافة حقل رقم الإصدار إلى جدول المقالة وإضافة جدول ثان أو علامة تقول أي إصدار واحد هو. يمكنك أيضا تحديد مع max(version)
لكن هذه البنيات SQL تميل إلى أن تكون قبيحة وقبيحة جدا. إنه أكثر بساطة للغاية لحفظ هذه المعلومات في مكان آخر.
تحرير] لتوليد الضتبئ، انظر إلى هذا المشروع: Google-Diff-Match-Patch
نصائح أخرى
أود استخدام VCS موجودة (على سبيل المثال، SVN) تحت غطاء محرك السيارة. هناك سجل مراجعة - كل ما تبقى لجعله هو واجهة من تطبيقك إلى VCS.