سؤال

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

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

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

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

المحلول

ولقد وجدت هذا الكتاب ليكون ملهما ويجب قراءة لأي نوع من قاعدة البيانات التي تنطوي على إدارة الوقت / القيود:

تطوير تطبيقات قواعد البيانات الموجهة للوقت في SQL

(<م> أضيفت من قبل المحرر : الكتاب rel="noreferrer"> هو متاح على شبكة الإنترنت، عن طريق ريتشارد سنودجراس الصورة الصفحة الرئيسية. ومن كتاب جيد).

نصائح أخرى

لقد وجهك @ Radu094 إلى مصدر جيد للمعلومات - ولكن سيكون من الصعب معالجة ذلك.

على مستوى عملي للغاية، هل فكرت في تسجيل المواعيد والمعلومات المتاحة في جدول واحد، بدلاً من جدولين؟لكل يوم، قم بتقسيم الوقت إلى "غير متاح أبدًا" (قبل فتح المكتب، وبعد إغلاق المكتب - إذا حدث شيء من هذا القبيل)، و"متاح - يمكن تخصيصه"، و"غير متاح".سيتم تسجيل هذه الفئات (الاثنتين أو) الثلاث من الحجوزات في فترات زمنية متجاورة (مع وقت البدء والانتهاء لكل فاصل زمني في سجل واحد).

لكل غرفة وكل تاريخ، من الضروري إنشاء مجموعة من الحجوزات "غير المستخدمة" (اعتمادًا على ما إذا كنت تختار "غير متاح أبدًا"، قد تكون المجموعة عبارة عن سجل واحد "متاح" أو قد تتضمن الوردية المبكرة و سجلات الوردية المتأخرة "غير المتوفرة أبدًا" أيضًا).

ثم عليك أن تحدد الأسئلة التي تطرحها.على سبيل المثال:

  • هل يمكنني حجز الغرفة X في اليوم Y بين T1 وT2؟
  • هل هناك أي غرفة متاحة في اليوم Y بين T1 و T2؟
  • في أي وقت في اليوم Y لا تزال الغرفة X متاحة؟
  • في أي وقت في اليوم Y تتوفر غرفة ذات إمكانيات سمعية وبصرية وتتسع لـ 12 شخصًا؟
  • من الذي حجز الغرفة X في صباح اليوم Y؟

هذه ليست سوى مجموعة فرعية صغيرة من الاحتمالات.ولكن مع بعض العناية والاهتمام بالتفاصيل، تصبح الاستفسارات قابلة للإدارة.سيكون التحقق من صحة القيود في نظام إدارة قواعد البيانات (DBMS) أكثر صعوبة.أي ضمان أنه إذا تم حجز الوقت [T1..T2)، فلن يحجز أي شخص آخر [T1+00:01..T2-00:01) أو أي فترة أخرى متداخلة.يرى جبر آلن الفاصل في ويكيبيديا وأماكن أخرى (بما في ذلك هذا الموقع في uci.edu).

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