اذهب إلى المحتوى

السؤال

نشر

تساؤل في تصميم قواعد البيانات :

عند تصميم قاعدة بيانات هل يمكن ان نحصل على  أكثر من هيكل بيانات صحيحين؟

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

Recommended Posts

  • 1
نشر (معدل)

السلام عليكم
أخ @صالح السوفي
الأفضل هو تخزين التقرير في جدول مستقل, لسهولة البحث عن أي معلومة بعد ذلك.

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

يفضل دائما تخزين التقارير والطلبات في جداول مستقلة, بالإضافة إلى جدول آخر "جدول العمليات" يحتفظ بجميع العمليات التي قد تحصل على الطلب او التقرير, حيث يتم تخزين رقم التقرير مع رقم المستخدم الذي قام بإجراء العملية ونوع العملية نص يوضح طبيعة العملية وتاريخها.

تم التعديل في بواسطة Nabil Tayeh
  • 0
نشر (معدل)

جزيل الشكر لك اخي @Nabil Tayeh على الاجابة  فهمت من كلامك ان اي شيء له اهمية نضعه ك كيان كي يكون له جدول خاص .
 

لدي استفسارين لو تسمح :1
1- انا درست الجانب النظري لتصميم قواعد البيانات  والآن اريد متابعت نماذج لحلات دراسية كي اتمرن اكثر لو تعطيني مصادر من فضلك

2- هل يمكن ان يكون لنظام ما  (شركة نقل مثلا) اكثر من تحليل صحيح

 

تم التعديل في بواسطة صالح السوفي
  • 1
نشر

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

لابد من المحافظة على تخزين البيانات التي قد يتم عليها أي عملية بحث او فلترة, سهولة الوصول للمعلومة أمر مهم جداً.

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Nabil Tayeh:

@صالح السوفي
ليس هناك قاعدة ثابتة يمكنك إتباعها عند تصميم قاعدة البيانات,

 

تمام بارك الله فيكم

بتاريخ 1 دقيقة مضت قال Nabil Tayeh:

@صالح السوفي
......لكن من تجربتي الكبيرة بهذا المجال

ماشاء الله

افدتني كثيرا الله يجازيك خير 
 

ماعندكش مصادر تعلم جيدة ؟

  • 1
نشر

بارك الله فيك, وعلمك ما ينفعك, ونفعك بما علمك.

هذا رابط لعدة دروس ومقالات, على أكاديمية حسوب, بإمكانك الإطلاع عليها, تساعدك كثيراً إن شاء الله.
https://academy.hsoub.com/programming/sql

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...