هل تريد تخزين قائمة عناوين URL للتصنيف - Sqlite DB، أو XML، أو pList؟تصميم الهيكل؟

StackOverflow https://stackoverflow.com/questions/1029184

سؤال

مرحبًا يا شباب، أريد تخزين قائمة مصنفة بعناوين URL.هذا تطبيق لبث الراديو عبر الإنترنت، ولذا أريد الحصول على ثلاثة روابط على الأقل لكل نوع:

  • عنوان URL المتدفق المجاني مع الإعلانات التجارية
  • عنوان URL للبث المتميز بسرعة 128 كيلوبت في الثانية
  • عنوان URL للبث المتميز بسرعة 256 كيلوبت في الثانية

لذلك سيكون لكل نوع عناوين URL الثلاثة هذه.

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

يمكن أن تتغير عناوين URL هذه، على الرغم من أنني أشك في كثير من الأحيان، ولذلك أريد أن أكون قادرًا على تحديثها، مما يعني أنه لا يمكن قراءة مساحة التخزين فقط.لا أعرف بالضبط كيف يجب أن أقوم بتخزين المعلومات، ناهيك عن نوع التخزين:sqlite db أو XML أو قوائم الخصائص.أنا جديد على كل هذا، لذا فأنا آسف إذا كان أي منهم غبيًا في هذا الموقف، هه.

أما بالنسبة للهيكل، فأنا لست متأكدًا من كيفية تحقيق ذلك أيضًا.ربما يمكنني الحصول على ملفات/قواعد بيانات منفصلة، ​​أيًا كان ما سأستخدمه في النهاية، لكل موقع، أو يمكن أن أحصل على قاعدة واحدة كبيرة مثل:

  • صخر
    • لوس أنجلوس
      • تيار الأحرار
      • البث المميز - 128 كيلو بايت في الثانية
      • البث المميز - 256 كيلوبت في الثانية

لكنني أعتقد أن قاعدة البيانات/الملف ستصبح ضخمة بسرعة.

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

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

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

شكرًا!

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

المحلول

إذا فهمتك، تريد:

قائمة الأنواع، يحتوي كل منها على قائمة بالمواقع، ويحتوي كل منها على قائمة بالصفات، ويحتوي كل منها إما على مجموعة من البيانات (بما في ذلك عنوان URL) أو عنوان URL فقط.وفي كلتا الحالتين، يمكنك القيام بذلك كقائمة خصائص، وهذا مجرد الحصول على الحد الفاصل للمكان الذي تريد أن تكون فيه مع قائمة الخصائص بدلاً من قاعدة البيانات.

SQLite موجود على iPhone، ويمكن الوصول إليه من خلال واجهة برمجة تطبيقات وظيفة C القياسية، على الرغم من عدم وجود Core Data.من المؤكد أن SQLite سيسمح لك بمزيد من البنية لقاعدة البيانات الخاصة بك واستفساراتك.

وفي كلتا الحالتين، يمكنك تضمين نوع من المعرف الأساسي لقاعدة البيانات، ثم الاستعلام عن خادم عبر الإنترنت لتلقي الاختلافات فقط وهذا من شأنه أن يقلل الحاجة إلى نقل قاعدة بيانات كبيرة عبر الشبكة - ولكنك ستحتاج إلى تحديد حجمها قاعدة البيانات الخاصة بك قبل اتخاذ قرار بشأن ما إذا كان ذلك جديرًا بالاهتمام.قد يكون ضغط ملف XML هو كل ما هو مطلوب، حيث أن ملف XML سيضغط كمية كبيرة (ربما تصل إلى 30% تقريبًا من حجمه الأصلي).

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

نصائح أخرى

هناك شيء آخر يجب مراعاته وهو أنه بالنسبة للتوافق مع أجهزة ما قبل نظام التشغيل 3.0، فإن البيانات الأساسية (SQLite) ليست خيارًا حقًا.

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

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