سؤال

أريد أن تبقي سجلات بعض الأشياء التي يفعلها الناس في بلدي التطبيق في بعض الحالات بحيث يمكن التراجع عنها إذا لزم الأمر.

هو أفضل طريقة لتخزين هذه السجلات في ملف أو قاعدة البيانات ؟ أنا تماما في حيرة ما إيجابيات وسلبيات إلا أنه طاولة أخرى إلى الإعداد.

هل هناك الثالث (أو الرابع الخ) الخيار أنني لست على علم أنه يجب أن ننظر إلى تعلم ؟

هل كانت مفيدة؟

المحلول

كنت يكاد يكون من المؤكد سوف ترغب في استخدام قاعدة بيانات مرنة, تسجل الوصول إلى والاستفادة من قاعدة البيانات القدرة على التعامل مع المتزامنة الوصول إلى البيانات.إذا كنت بحاجة إلى تتبع المعلومات التي قد تحتاج إلى التراجع عنها بعد ذلك في شكل منظم هو فائدة ، كما هو وجود القدرة على تحديث صف مشيرا إلى متى وبواسطة من معين الصفقة تم التراجع عنه.

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

نصائح أخرى

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

باستخدام إدراج تأخير لن تبطئ التطبيق الخاص بك إلى الكثير بسبب قطع الأشجار.قاعدة بيانات مجانية لكتابة إدراج القرص في أي وقت, لذلك يمكن أن حزمة مجموعة من إدراج معا.

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

أنا مروحة كبيرة من log4php.فهو يوفر لك واجهة قياسية لتسجيل الإجراءات.أنها تقوم على log4j.المكتبة الأحمال المركزية config, لذلك أنت لا تحتاج إلى تغيير التعليمات البرمجية الخاصة بك إلى تغيير التسجيل.كما يقدم العديد من تسجيل الأهداف ، مثل ملفات, syslog, قواعد البيانات ، إلخ.

أود أن استخدام قاعدة البيانات ببساطة عن الصيانة - أيضا عدة تعديلات على ملف قد يسبب بعض الحصول غاب.

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

إلقاء نظرة على بلدي في وقت سابق من الموضوع استراتيجية جيدة من أجل ترك المراجعة/تغير التاريخ DB التطبيقات ؟ يبدو لتغطية نفس الموضوع.

لقد وجدت هذا المقال: http://www.devshed.com/c/a/PHP/Logging-With-PHP/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top