سؤال

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

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

سأكون ممتنا أيضا لأي روابط لمواقع الويب التي تناقش أفضل الممارسات فيما يتعلق بتصميم قواعد بيانات الملفات المسطحة، إلخ.

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

أعلم أن هذا سؤال عام للغاية، ولكن أي نصيحة يمكن أن تشيرني في الاتجاه الصحيح هي موضع ترحيب.

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

المحلول

ربما تكون لديك تعريفاتك مختلطة بعض الشيء، مفهومة بسبب عدد كبير من التقنيات المماثلة حول اليوم.

XML ليس أ تنسيق ملف مسطح (أو قاعدة بيانات الملفات المسطحة)، ولكن من قراءة هدفك، فإنه يبدو وكأنه ما تريده حقا هو قاعدة بيانات ذاتية قائمة ذاتية بدلا من ملف ثابت فعلي.

مثل الآخرين، يمكنني أن أوصي بشدة SQLite لهذا الغرض. هناك ارتباطات لمختلف المنصات،. system.data.sqlite. الذي، في ملف واحد، هو كلا من مزود قاعدة البيانات والمحرك.

الفوائد الكبيرة لاستخدام SQLite هي أن قاعدة البيانات الفعلية هي ذاتية كاملة تماما في ملف واحد يسيطر عليه التطبيق الخاص بك، وأنه يدعم أوامر SQL DDL و DDL القياسية (أي تحديد، إدراج، تحديث، حذف، إنشاء قاعدة بيانات / جدول إلخ ).

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

ومع ذلك، لا تفضل Oracle، MySQL، SQL Server وما إلى ذلك بالتأكيد على تطبيقات المستخدمين المتعددين (حتى التطبيقات الصغيرة) إذا كان لديك القدرة على الوصول إلى / الاستفادة من خادم قاعدة البيانات.

أيضا، لا تنس أن اختيار قاعدة البيانات غير حصرية.

قد يكون لديك تطبيق متعدد المستخدمين مع تثبيت عميل غني يعمل على العديد من أجهزة الكمبيوتر المستخدمين. يجب أن تكون قاعدة البيانات المركزية هنا حقا DB متعدد المستخدمين مثل MySQL. ولكن داخل العميل الغني UI، SQLite مثالي لتخزين إعدادات كل مستخدمين، أو ربما لتوفير دعم خارج الخط عند عدم الوصول إلى قاعدة البيانات.

نصائح أخرى

تام هو واحد كنت قد استخدمت في الماضي. إنه يحفظ باسم JSON في FlatFiles ويمكنك العثور عليه على Github

تنسيقات النص مثل CSV., في, XML يمكن استخدامها لتخزين البيانات المنظمة، ولكن IMO ليست مرنة أو فعالة لاستخدامها كقواعد بيانات.

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

يمكنك الحصول على كعكتك و أكلها أيضا:

sqlite. هي قاعدة بيانات SQL تتألف من ملف واحد ولا تتطلب أي تثبيت، لديها ارتباطات للعديد من اللغات ويتم تشغيلها في منصات مختلفة.

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

هناك العديد من قواعد البيانات المضمنة المتاحة لن يتعين على المستخدم أن تقلق بشأنها على الإطلاق.

Sqllite أمر شائع، شعبية، منصة عبر، إلخ. يعتمد على لغة التنفيذ الخاصة بك. إذا كنت تستخدم Java، فهناك العديد من Derby على سبيل المثال. .net ليس لي ballywick، لكنني أتصور هناك شيء هناك. عند الحد الأدنى، لدى MS سطح مكتب قابل للاستخدام بحرية، محرك SQL المضمن الذي يمكنك استخدامه.

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

هنالك ال DBD :: CSV. الوحدة النمطية في بيرل التي يمكنها تحميل ملفات CSV واستعلامها ببيانات SQL. ولكن لتحقيق هدفك، أعتقد أنك ستكون أفضل حالا في التحقيق sqlite. وهي قاعدة بيانات علنية مناسبة تعمل بدون خادم.

بدلا من تعديل قواعد البيانات، لماذا لا حزمة طلبك مع محرك قاعدة بيانات بسيط؟ تأتي قواعد البيانات في العديد من الأحجام، وليس كلها ضخمة :-)

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

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

  • تنسيق قاعدة بيانات ملف مسطح مشترك للغاية هو XBASE (الملفات عادة مع ملحقات .dbf). يمكنك جوجل ل "XBASE" و "DBF" والعثور على الكثير من المعلومات وأي عدد من برامج التشغيل. يجب أن تكون قادرا على استخراج عدد قليل من التلميحات والنصائح إذا كنت مهتما حقا.
  • إذا كنت ترغب في اللعب مع واحد من المحتمل جدا على نظامك، فيمكنك استخدام ODBC "Microsoft Text Driver". إذا كان لديك أي من الأشياء وصول بيانات Microsoft على جهازك، فمن المحتمل أن يكون لديك برنامج التشغيل. لا أعرف بالتأكيد ولكن ربما مثبت مع MDAC. سيؤدي ذلك السائق إلى قراءة وكتابة ملفات نصية مفصولة بفواصل (من بين تنسيقات أخرى).
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top