استبدلتُ قاعدة بيانات تطبيقي بمجلد على Google Drive

أردتُ تتبع تقدم ابنتي في الموسيقى. فهي تتلقى مقاطع صوتية وملاحظات من معلمتها كل أسبوع، وأردتُ الاستماع إلى جلسات تدريبها بمرور الوقت، ولم أكن أريد أن تحل التسجيلات الجديدة محل القديمة.

قمتُ ببناء تطبيق لحل هذه المشكلة. ليس له واجهة خلفية (backend)، وليس له قاعدة بيانات، وتكلفته صفر دولار.

يتجاهل معظم المطورين ميزة في Google Drive، وهي سجل المراجعات (revision history).

عندما ترفع نسخة جديدة من ملف يحمل نفس الاسم والمعرف (ID)، يحتفظ Drive بالنسخة القديمة، وتظل مسجلة بالوقت ومتاحة للتصفح.

بدلاً من بناء قاعدة بيانات معقدة تحتوي على جداول ومفاتيح خارجية (foreign keys)، أقوم ببساطة باستبدال الملف، ويتولى Drive عملية إدارة الإصدارات (versioning). يستخدم تطبيقي استدعاءين فقط لواجهة برمجة التطبيقات (API calls) لعرض السجل، ولم أكتب أي منطق خاص بإدارة الإصدارات.

يعمل هيكل المجلدات بمثابة مخطط قاعدة البيانات (database schema) الخاص بي:

• لكل أغنية مجلدها الخاص. • تستخدم الملفات بادئات مثل teacher-audio أو student-practice. • لا أستخدم JSON لوصف الهيكل. • إضافة مجلد جديد تُحدث التطبيق تلقائياً.

احتجتُ أيضاً إلى طريقة لوسم الأغاني (tagging). لم أستخدم ملف JSON لهذا الغرض، بل استخدمتُ خصائص البيانات الوصفية (metadata properties) في Drive. يمكنك إضافة أزواج (key-value pairs) مباشرة إلى المجلد، مما يبقي كل شيء ضمن استدعاء واحد لواجهة برمجة التطبيقات (API call).

الإعداد:

• الاستضافة: GitHub Pages (مجانية) • المصادقة: Google Identity Services (من جانب العميل فقط) • التخزين: Google Drive • قاعدة البيانات: لا يوجد. هيكل المجلدات هو النموذج (model). • التكلفة الإجمالية: 0 دولار.

نصيحة واحدة: يقوم Drive بحذف المراجعات القديمة بعد 30 يوماً. يجب عليك ضبط علامة keepRevisionForever لحفظها.

هذا ليس منتجاً للعامة، بل هو أداة شخصية لعائلتي.

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

هل استخدمتَ سجل المراجعات أو حقل الخصائص (properties field) في Drive لأغراض البنية التحتية؟

المصدر: https://dev.to/vankadn/replaced-my-apps-database-with-my-daughters-google-drive-folder-1455