سؤال

أنا أقوم بإنشاء CMS ولم أقم بعد بتسوية مكان تخزين عنوان URL الكامل لصفحة معينة في الهيكل.

تحتوي كل صفحة على اسم سبيكة (اسم عنوان URL للصفحة) ، وكل صفحة لها أمين وأطفال (للصفحات ذات المستوى الأعلى).

أين أقوم بتخزين عنوان URL الكامل (/الصفحة الأولى/الصفحة الفرعية) لصفحة معينة؟ هل يجب أن يحدث هذا في قاعدة البيانات مع الخصائص الأخرى للصفحة أو في بعض ذاكرة التخزين المؤقت؟

تحديث

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

تحديث 2

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

أفضل أن أحصل على عنوان URL بالكامل في الجدول حتى أتمكن من إجراء استعلام واحد فقط (حيث url = '/الصفحة الأولى/الصفحة الفرعية) ولكن هذا لا يبدو مثاليًا ، ماذا لو قمت بتغيير الرخوة من أجل صفحة الوالدين؟ ثم أحتاج أيضًا إلى تحديث مجال عنوان URL لجميع أحفاد.

كيف يحل الآخرون هذه القضية؟ هل يضعونها في قاعدة البيانات؟ في ذاكرة التخزين المؤقت التي تقوم بخرائط /صفحة من الصفحة الأولى /الفرعية إلى المعرف للصفحة؟ أم أنها تقسم عنوان URL المطلوب والحلقات على الرغم من قاعدة البيانات؟

شكرًا

أندرس

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

المحلول

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

في الأساس ، تريد قاموسًا يقوم بتعيين URL -> كل ما تحتاجه لتقديم الصفحة. ستستخدم العديد من خوادم الويب تلقائيًا نظام ملفات نظام التشغيل كقاموس وغالبًا ما يكون لديه ذاكرة التخزين المؤقت المدمجة التي يمكن أن تتعرف عندما يتغير ملف في نظام الملفات. ربما يكون هذا أكثر كفاءة من أي شيء يمكنك كتابته في CMS. لذلك ، قد يكون من الأفضل أن تجعلك تقوم بتنفيذ الهيكل مباشرة في نظام الملفات والتعامل مع تعيين إضافي مع روابط صلبة أو ناعمة.

نصائح أخرى

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

يتطلب هذا النهج بعض القواعد حول ما يحدث عند تحرير الفئة. النهج الآن هو أنه بمجرد تعيين المسار الكامل للفئة الفرعية ، لا يمكن تغييرها لاحقًا باستخدام الأدوات العادية.

المصدر هو mvccms.codeplex.com

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