ساعطيك قاعدة اعمل بها وسوف تصمم بنيان تابث ومتين دائما فقط افهم الفكرة
بعد ان تدرس طلبات الزبون اجلس مع ورقة وقلم وقم بتجزئة المطلوب من حقول بعد ان تدرس طبيعة عملهم طبعا
يعني انك قابلت زبون له مخازن ويريد ان يجعل لها منظومة تحفظ الوارد والصادر
طبيعي جدا لابد وان تدرس نظام المخازن من شخص .
او على الاقل تأخد رؤوس العناوين .
اذا كان ليس بالامكان اطلب من الزبون ان يزودك بمجموعة من الفواتير ومجموعة من التقارير .
الزبون لا يفهم طبيعة عملك ولن يحدثك عن المورد مثلا ولكن سيتطرق لنقطة الاموال المدينة والدائنة التي عليه والتي له فهذا ما يهمه ولهذا هو احظرك
الفاتورة عندما ستلقي عليها نظرة ستعرف انت الحقول المطلوبة
ستجد لها رقم ولها اسم مورد او اسم عميل وتاريخها وتلفون العميل او المورد والعنوان والقيمة المدفوعة والاصناف وقيمتها
واضح جدا لنا ما الحقول التي نحتاجها الان .
ستحتاج الى كم سؤال عادة وانت تشرب القهوة مع الزبون
اسأله مثلا هل لفواتير المورد ارقام متشابهة ام لا ...؟
اجد الكثير يبرمج احيانا منظومات تحفظ فواتير الموردين برقم تعريف لا يتشابه ابدا
وهذا خطاء لانه من الممكن ان تأتيك فاتورة من المورد عصام للغذائية برقم 00045 وتأتيك فاتورة من المورد اسلام لمواد البناء برقم 00045
عصام واسلام الاثنان لهم فاتورة برقم 45 وهذا طبيعي جدا لان كلاهما لا علاقة له بترقيم الاخر .
احيانا يلجاء البعض لترقيم فواتير الموردين بتسلسل خاص بالزبون وهناك حقل يحمل رقم فاتورة المورد لوحده وعندما يحفظها يكتب عليها بالقلم الرقم الذي حفظها به
شخصيا لا احبذ هذه الفكرة وارى ان تجعل رقم الفاتورة من الممكن ان يتكرر ولكن لا يتكرر اسم العميل
المفتاح الرئيسي لفاتورة الموردين المفترض ان يكون رقم التعريف مع رقم المورد ID+SupplayID
الان جدول الموردين والعملاء لانختلف عليه له الحقول التي نريدها وذكرناها
جدول الحركة الذي به فواتير الموردين والعملاء فيه رقم تعريف ورقم الفئة مثلا هل تتبع الكهربائية او المنزلية او اللاكترونية وهكذا
ورقم الصنف الخاص بالثلاجة والتلفزيون والغسالة وهكذا
لاحظ اقول ارقام وليس اسماء من الخطاء الشديد ان تستخدم الاسماء
ولدينا الكمية المباعة او المشتراة طبعا سعرها المفترض ان يكون بجدول الاصناف لا يجب ادراجه هنا
من قواعد قواعد البيانات ان لا تكرر اي معلومة مرتين ، اي لا تحفظها بمكانين ابدا .
فقط يبقى سعر التخفيظ بحال اراد المستخدم تخفيض 50 دينار مثلا من سعر صنف ما .
بعدها المجموع وهذا يتم لحظيا وهو للقراءة فقط وللعرض فقط لا تخزنه كما ارى الكثير يفعلون
اذا كانت الفاتورة لها تاريخ سداد مؤجل اذا انت بحاجة انشاء حقل بتاريخ السداد ، وكلما شغلت المستخدم المنظومة تبحث بقاعدة البيانات عن تاريخ يساوي او اصغر من تاريخ اليوم فتنبهه الى ان هناك فواتير مستحقة الدفع .
بحال كان المورد او العميل له هاتفين مثلا يمكن جعلها في نفس الجدول بحقلين ولكن لو كان هناك اكثر من هاتف او كل فترة يغير رقم اجعل جدول فرعي لارقام الهواتف الذي يعمل منها والذي لا يعمل لا تحذف شيئا منها .
الكمية نلاحظ اننا وضعناها بجدول الحركة احذر ان تخزنها وتكررها بجدول الاصناف كما يفعل البعض
انك عرضة للخطاء ولماذا تكرر بيانات يمكنك بسهولة ان تجدها بجدول الحركة
نلاحظ ان جدول الاصناف متربط بجدول الحركة وعليه لا تحذف ابدا اي صنف سبق ادراجه بجدول الحركة
لانك سوف تضيع اموالا عن طريق الخطاء .
هذا غير مسموح ابدا .
وكذلك لا يتم حذف عميل او مورد مرتبط بفاتورة ما ابدا .
القاعدة تقول اي بيانات وجدت نفسك سوف تخزنها بجدول بشكل متكرر تأكد تماما ان تكون بجدول مستقل وتحفظها رقم التعريف فقط
اي قيمة محفوظة بمكانين مختلفين وهي نفسها خطاء في تصميم قاعدة بياناتك .
اي قيمة او فهرس ربطته بحقل نصي بدل من رقمه هو خطاء مثل ان تجعل بجدول الحركة اسماء الاصناف وليس ارقامها .
ونلاحظ ايضا ان الفاتورة يجب ان تكون مقسومة الى نصفين
كل نصف بجدول
راس الفاتورة اتريخها ورقمها والمورد او العميل وغيرها بجدول والاصناف التي تتبعها بجدول
لانك لو وضعتهم بجدول واحد ستخالف القواعد التي تحدتنا عنها
ماذا ايضا .
هذا التحليل يعطيك فكرة عن طريقة التصميم .
والتي يجب استخدامها باي تصميم لقاعدة بيانات اخرى .
اذا تذكرت شيئا سوف اضيفه
وانا اكتب كان هناك الكثير الذي اريد ان اتحدث عنه واشعر انني نسيت شيئا