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