سلسلة الأستاذ محمد فؤاد تركي من ضمن المواضيع المثبتة على الرابط
وقد مررت عليها كاملة البارحة، وأظن أن العمل قد انتهى حسب ردود الأستاذ محمد فؤاد...
سلسلة الأستاذ محمد فؤاد تركي من ضمن المواضيع المثبتة على الرابط
وقد مررت عليها كاملة البارحة، وأظن أن العمل قد انتهى حسب ردود الأستاذ محمد فؤاد...
فعلا العمل انتهى وهذي من المواضيع الي عطتني فكرة عن نظام المخازن
كنت اعتقد انه يمكن تم عمل سلسلة ثانية عن طريق الفيجوال بيسك لانه استاذي محمد اعتقد انه يحاول يسوي نفي البرنامج عن طريق الفيجوال بيسك
السلام عليكم زرحمة الله وبركاته
مرحباً إخوانى الكرام ..
مرحباً أستاذنا أحمد مبارك والحلقة (25) والتى لم أتم قراءتها بعد .. ويبدو أننى سوف أوضع من الآن وصاعداً فى ركن المعاقبين Naughty Corner
ولكن أحببت أن أتمسك بوجودى فى السلسلة .. وأرحب بأخينا العضو Sandm
كما أسأل عن أخينا المشاغب أو المشاكس Slave أين حضوره المميز والذى يضيف روح النشاط إلى السلسلة .. وفى نفس الوقت روح المرح .. لعل غيابه خير.
وما زلت أتمنى ألا يجرفنا التيار بعيداً عن الموارد البشرية .. طبعاً هذا لن يؤثر على السلسلة وتميزها ومتابعتنا لها وما ننهله منها من معرفة .. ولكن أنا من له من المناهل مأربُ .. وأنا أضمن بعض الأصوات المؤيدة لهذا الإتجاه كما قال أستاذنا أحمد مبارك.
تحياتى ..
محمد ندا
تم تعديل هذه المشاركة بواسطة Mohamed Nada في 2 أغسطس 2009 في 21:01
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
وعليكم السلام ورحمة الله وبركاته...
حياك الله أخي محمد ندا... ركن المعاقبين ليس للمدراء، وأظن أن هذه من فوائد الإدارة :)
لك أن تتصور حيرتي الآن... حاولت في الحلقات السابقة تجنب موضوع مثال عملي واحد متعمق بعد الإشكال الذي صادفته من البداية: المتابعون معي يعدون على أصابع اليد الواحدة، وميولهم ليست نحو برامج المخازن والمبيعات، وأنا لا أملك خبرة في برامج إدارة الموارد البشرية تحديداً، مما يجعل أمر التعمق في هكذا نظام على سبيل التمثيل للمفاهيم النظرية صعباً بالنسة لي...
الآن، وبسبب سابق اطلاع على بعض مفاهيم برامج المخازن، وجدتني أمثل على بعض الجزئيات بهذه المفاهيم، مما جذب استفسارات ونقاشاً في هذا الاتجاه...
ربما أسترسل في مناقشة بعض هذه الأفكار (من أنظمة المخازن والمبيعات) لبرهة من الزمن، ثم يقدر الله أمراً كان مفعولا...
لا أخفيك أن نيتي كانت التعرض لبعض المفاهيم في تصميم التطبيقات مثلاً، لكن ربما كان طرق الحديد وهو ساخن أفضل...
المشكلة الأخرى أن هناك سلسلة أخرى بالفعل لبرنامج مخازن ومبيعات للأستاذ محمد فؤاد تركي، على الرغم من أنني قد وجدت أن هناك مجالاً بعد لقول المزيد بعد اطلاعي على كامل السلسلة، لكن هذا المزيد لن يتم الاطلاع عليه إلا من قبل عدم المهتمين به أصلاً (لأن الموضوع ليس مستقلاً بعنوان خاص مثل سلسلة الأستاذ محمد فؤاد)...
أنت ترى أن كتابة بعض المذكرات أضحت أكثر من مجرد بعض التنظير... حتى هنا ينبغي أن تتوقف وتتردد... المشكلة أن الحياة أقصر من ذلك...
استاذي احمد
اولا الله يعطيك العافية ويبارك فيك ويجعل عملك خالص لوجه الله تعالى يورحم والدين على هذا الجهد
ثانيا انا اعتقد بالعكس برنامج المخازن مثل ما قلت من البرامج المهمة واهية من اكثر البرامج التي عليها الطلب
ويهمني كثيرا تعلم الافكار الجديدة في هذا الموضوع وعلى فكرة او برنامج للاكسيس تعلمت عليه اهوا نظام مخازن وكان عبارة عن برنامج الحديقة
لكتاب تعلم الاكسيس خطوة بخطوة اعتقد الكتاب مشهور وكانت اول ما تعلمته وبعدها اكملة مع منتدانا الغالي
اكمل على بركة الله ولا يهمك وان شاء الله راح انكون عون لك ان شاء الله
وسسسسع يا جدع انت وهو
انا جيييت
كدة تستغلوا غيابى وتعملوا كل ده (ما شاء الله طبعا)
عموما انا حبيت أمضى حضور قبل ما اخش على الدرس
ربنا يقدرنى على المتابعة
وشاكر جدا لكل من تكرم بالسؤال ولكل من أرسل برقية
وأخص بالشكر السيد رئيس الجمـــ ... (تييييييت)
:stop:
الجمعية يا أخى
{العلم قبل العمل} ... مذكرات حول قواعد تصميم البيانات .
خير الناس أنفعهم للناس
عوداً حميداً أخى المشاكس والمشاغب Slave
والله لقد ضحكت بصوت وأنا وحدى بالشقة بعد قراءة مشاركتك الأخيرة .. :haha:
سيقولون مجنون (يكفيك شر العباسية) ولإخواننا الأشقاء غير المصريين .. العباسية هو الإسم المتداول لمستشفى الأمراض العقلية الواقعة بحى العباسية.
وحشتنا ..
بسرعة بقى إقرأ .. علشان الرئيس مستنى إبداعاتك.
أستاذنا أحمد مبارك الحيقى
لقد بدأت حضرتك هذه السلسلة تبغى من ورائها الإفادة ونشر جزء مما حباك الله به من علم تبتغى مرضاة الله وأن ينفع الله بك إخوانك بالمنتدى وهذا هدف نبيل فى حد ذاته.
أضف إلى ذلك ما نستقيد من أفكار ومنهاجية تتراكم مرة بعد مرة .. وسيكون ذلك بأمر الله من خلال أى نظام نقرر الدخول فيه .. مخازن كان أو موارد بشرية.
ولذلك على بركة الله توكل .. ونحن هاهنا نتابع ونشارك ما استطعنا .. ونحن على يقين من الاستفادة.
تحياتى
محمد ندا
تم تعديل هذه المشاركة بواسطة Mohamed Nada في 6 أغسطس 2009 في 23:11
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
رقم الحلقة (26)
(الجزء الأول)
الأخ الكريم sandm:
اقتباساما عني انا احب الإطلاع والقراءة قبل التطبيق
ممتاز، في الماضي، كان هذا من البديهيات، لكنه الآن من الأسرار التي يغفل عنها الكثيرون: من الأفضل أن تقضي بعض الوقت تشحذ فأسك قبل أن تقطع به، من أن تقضي الكثير من الوقت (تحاول) القطع بفأس غير مشحوذ.
الأخ العزيز محمد المسيفري:
اقتباساكمل على بركة الله ولا يهمك وان شاء الله راح انكون عون لك ان شاء الله
أشكرك على هذا التشجيع، وأنا متأكد من أنك ستكون نعم العون بإذن الله، خاصة بعد ما لاحظته من مشاركاتك القيمة خارج هذه السلسلة.
الأخ الفاضل، المدير محمد ندا:
اقتباسعوداً حميداً أخى المشاكس والمشاغب Slave
بالفعل، مكانك محجوز، فأهلاً بك.
اقتباسولذلك على بركة الله توكل .. ونحن هاهنا نتابع ونشارك ما استطعنا .. ونحن على يقين من الاستفادة.
أسأل الله أن يجعلني عند حسن الظن، وأن يسدد أقوالنا وأفعالنا، وأن يجعل عملنا كله خالصاً لوجهه الكريم... آمين.
إذاً، فلا مناص من التوقف، ومناقشة مثال عملي لتصميم برنامج قواعد بيانات. أنا أتوقع أن تحظى هذه الحلقة بالنصيب الأوفر من التفاعل لأننا نتحدث عن أفكار عملية مألوفة للكثيرين، على خلاف الحلقات السابقة التي كنا نتحدث فيها عن الكثير من المفاهيم، والناس لا تحب المفاهيم...
أيضاً أتوقع أن تطول هذه الحلقة قليلاً، لأنني ربما أسترسل في مناقشة بعض أفكار برامج المخازن والمبيعات، بعضها تمت الإشارة إليها بالفعل في مشاركات الأخوين مشارف وsandm من قبل، ربما من الأفضل حقاً أن تستعد من الآن بكوب من الشاي أو الكابتشينو، وأن تتناول العشاء قبل أن تجلس، لأننا لا نريد أن يستدعوك من أجل العشاء ونحن نتحدث. إذا كنت مصراً، فأنا أحب الشاي سكر زيادة
قبل أن نخوض في الكلام، دعونا نقف قليلاً، ونرتب أفكارنا، ونتفقد مواضع أقدامنا. أين نحن الآن بالضبط؟ تكلمنا حتى الآن عن العديد من المفاهيم في طريق تطوير أنظمة قواعد البيانات، ومن الجيد بين حين وآخر أن تتأكد من أنك لن تستيقظ فجأة لتتساءل في دهشة: أين أنا، من أنا؟ هناك الآن كم لا بأس به من المفاهيم يتراقص في السماء، اسمح لي أن أحاول التقاطها وسحبها إلى الأرض، لنرى أين تقع على أرض الواقع.
عند حديثنا عن برامج قواعد البيانات، عرفنا أن في طريقنا العديد من المحطات، منها محطتان رئيستان: قاعدة البيانات، والبرنامج (التطبيق) الذي تبنيه ويتعامل مع قاعدة البيانات. وهناك أيضاً المحطات الفرعية من أمثال تحليل قاعدة البيانات، تصميم قاعدة البيانات، تحليل وتصميم البرنامج، البناء الفعلي لقاعدة البيانات وللتطبيق، إلى آخره. ما نعتزم قضاء اللحظات القادمة فيه بإذن الله يصب أساساً في مرحلة تحليل وتصميم قاعدة البيانات، وهو أساساً ما تكلمنا عنه في هذه السلسلة حتى الآن. يحب الكثير أن يفكروا بتطوير برامج قواعد البيانات باعتبار التطبيق وليس قاعدة البيانات، ويسألون عن مفردات تنتمي إلى مرحلة بناء التطبيق. بما أننا ننوي الدخول في الجزء العملي، فأنا أحب أن أربط هنا المراحل السابقة بالواقع، وأن أجعل هذه المقدمة فعالة قدر الإمكان، وأظن أن أفضل وسيلة لذلك هي أن أجعلها في شكل الإجابة عن السؤال المألوف:
ماذا أحتاج لأصبح مبرمج قواعد بيانات؟
سؤال وجيه، ولكنه في كثير من الأحيان يأتي متأخراً للأسف، لكن لا بأس، الحضور متأخراً خير من عدم الحضور. سأجيب بإذن الله عن هذا السؤال في ظل ما تكلمنا عنه سابقاً حتى الآن، وفي ظل الافتراض الذي وضعناه من قبل، وهو أنك (الكل في الكل)، وافتراض خاص آخر، وهو أننا نتكلم عن أنظمة صغيرة، ولذلك سنستبعد المتطلبات من وزن (دراسة تحليل نظم) مثلاً، لأن ذلك بكل بساطة غير عملي في نطاق نقاشنا هذا.
بشكل عام، من أجل تطوير برنامج قاعدة بيانات، ستحتاج إلى تطوير قاعدة البيانات، وإلى تطوير البرنامج. لاحظ هنا، للمرة الألف، التمييز بين قاعدة البيانات وبين التطبيق أو البرنامج. من الممكن لقاعدة بيانات واحدة أن تخدم العديد من التطبيقات. قد لا تصادف ذلك في الأنظمة الصغيرة التي ستبنيها في البداية. لكن في الشركات، من الطبيعي جداً أن تخدم قاعدة بيانات واحدة كبيرة، عدة تطبيقات، مثل نظام المالية، والموارد البشرية، والمخازن، بالإضافة إلى نشاط الشركة الأساسي. كما أنه من الممكن، نظرياً على الأقل، لتطبيق واحد أن يتعامل مع أكثر من قاعدة بيانات.
من أجل تطوير قاعدة البيانات أنت تحتاج إلى تحليل متطلبات النظام من قاعدة البيانات، ثم إلى تصميم قاعدة البيانات وفقاً لتلك المتطلبات، ثم إلى بناء قاعدة البيانات فعلياً باستخدام واحد من برامج إدارة قواعد البيانات. من أجل تحليل المتطلبات أنت تحتاج إلى الإلمام بالطرق الأساسية لجمع البيانات، وإلى الوقت الكافي (والذكاء الكافي) لتطبيق هذه الطرق. أنا أتكلم عن أشياء من قبيل سؤال المستخدمين، دراسة مخرجات النظام، ومراقبة سير العمل. سبق الحديث عن هذه المواضيع، لكن لا بد هنا من التشديد على أن من أهم احتياجاتك لهذه المرحلة هو الكثير من الصبر. هذا الصبر سيتوزع على صبرك على المستخدمين، وعلى صبرك على نفسك من أجل إجبارها على قضاء وقت كافٍ في التفكير في كل ما جمعته، وفهمه جيداً، قبل القفز إلى المرحلة التالية. هل تشعر في نفسك القدرة على ذلك؟ جيد، إذاً، إلى الأمام.
من أجل تصميم قاعدة البيانات ستحتاج إلى ناتج المرحلة السابقة، وهو الفهم الجيد لمتطلبات قاعدة البيانات، وإلى الإلمام بالمفاهيم الأساسية لتصميم قواعد البيانات، والتي أخذت منا الكثير من الوقت حتى هذه اللحظة. هنا، أنا أتحدث عن أشياء من قبيل معنى الجداول والمفاتيح، والعلاقات بين الجداول، والأشكال السوية لجداول قواعد البيانات، ومتى يمكن أن تتنازل عن بعض التسوية (أقول بعض)، وتكامل قواعد البيانات. القدرة على إنشاء مخططات الكائنات والعلاقات تدخل ضمن المهارات التي قد تحتاجها في هذه المرحلة. هذه المفاهيم في هذه المرحلة بالذات لا يمكن التساهل فيها، ولا بد أن تتأكد من أن لديك الحد الأدنى من المعرفة بأصول تصميم قواعد البيانات. هل كنت قادراً على متابعة النقاش في هذه السلسلة، ولو بالحد الأدنى؟ إذا كان كذلك، فدعنا نمضي قدماً.
من أجل بناء قاعدة البيانات فعلياً، أنت ستختار (أو إن المستخدم سيختار) واحداً من أنظمة إدارة قواعد البيانات التي ستدير قاعدة البيانات. نحن نتكلم هنا عن أشياء من قبيل برنامج الأكسس والأوراكل. غالباً ستوفر هذه الأنظمة طريقة ما سهلة (بواجهة رسومية) لبناء قاعدة البيانات (مجموعة الجداول بكل حقولها وعلاقاتها، وغيرها من الكائنات التي لم نتكلم عنها بعد). لكن يمكنك دائماً أن تبني قاعدة بياناتك باستخدام اللغة الوحيدة التي يجيدها برنامج إدارة قواعد البيانات: SQL. هذا الخيار الأخير نادر الاستخدام في حالة استخدام نظام مثل الأكسس، لكنه وارد جداً في حالة استخدام أنظمة مثل الأوراكل. هذا يعني أنك ستحتاج هنا إلى إجادة استخدام واحد من أنظمة إدارة قواعد البيانات (أفترض هنا أنه الأكسس بالطبع). وأظن أن هذه من أكثر المهارات توفراً في حالة المتابعين لهذه السلسلة. مثلاً، كتاب مثل تعلم الأكسس خطوة خطوة، يزودك بالأساس الكافي للتعامل مع الأكسس من منطلق الاستخدام (وليس تصميم قواعد البيانات أو البرامج). الأخ مشارف قد اطلع على هذا الكتاب كما أخبرنا في مشاركته السابقة، وعلى الرغم من أنني شخصياً لا أعد مستخدماً جيداً للأكسس على الإطلاق، إلا أنني أذكر أنني قد قرأت هذا الكتاب في وقت ما (أذكر أنه كان كتاب تعلم أكسس 97 خطوة خطوة). اهمية إجادة SQL هنا قد لا تبدو واضحة، لكن خذها كلمة مني، مبرمج قواعد بيانات لا يجيد لغة قواعد البيانات، ليس مبرمج قواعد بيانات. المزيد عن ذلك فيما بعد إن شاء الله. هل تجد في نفسك المقدرة الكافية على التعامل مع الأكسس على سبيل المثال؟ ممتاز. لنر إذاً ما ينتظرنا بعد.
عند الحديث عن بناء التطبيقات، سأتجاوز مرحلتي التحليل والتصميم (مفهوم ضمنياً، أصول التحليل هنا هي نفسها أصول تحليل متطلبات قواعد البيانات، لكن التصميم قد يشمل مفاهيم وأدوات أخرى لم نتطرق إليها من قبل، على سبيل المثال، مخطط تدفق البيانات Data Flow Diagram (DFD)، لكن هذا من الممكن تجاوزه مؤقتاً في الأنظمة الصغيرة)، أحب أن أركز هنا على جزء تنفيذ التصميم، وبناء التطبيق فعلياً.
تنفيذ التصميم يعني البرمجة، والبرمجة تعني استخدام لغة برمجة محددة. لغات البرمجة التي ستستخدمها قد تكون لغات برمجة متعددة الأغراض، أو عامة الأغراض general-purpose، وهذا يعني أنها ليست متخصصة في الاتصال بقواعد البيانات، ولا تحوي وظائف من أصل اللغة لهذا الغرض. علاوة على كل ذلك، لغات البرمجة هذه الأيام لا تنفصل عن بيئات مدمجة للتطوير Integrated Development Environments (IDE)s، تحوي بالإضافة إلى المترجم ومحرر النصوص لكتابة اللغة، العديد من مكتبات الأكواد والأدوات المساعدة.
أرجو الآن أن تأخذ رشفة من كوب الشاي، وأن تركز معي. لا أحب تضخيم الأمور، لكن الفقرة السابقة قد احتوت على العديد من المهارات التي ربما لم تكن تأخذها في الحسبان. في البداية، وللأسف من أكثر الأجزاء عرضة للتجاهل، الحقيقة (المرة) أنك ستحتاج لمهارة البرمجة... أعني البرمجة... هذا يعني البرمجة. لا تقلق، لم أنم على لوحة المفاتيح بعد، وأنا أقصد تماماً كل (زر) ضربته. أقصد أنك ينبغي أن تلم بمفاهيم البرمجة بغض النظر عن لغة برمجة معينة. البرمجة علم وفن بحد ذاتها، وكما أن لتصميم قواعد البيانات أصول لا تتعلق بالنظام المحدد لإدارة فواعد البيانات الذي ستختاره، فإن للبرمجة أصول لا تتعلق بلغة برمجة بعينها. هذا لا يعني أنه يتوجب عليك أن تقرأ بشكل خاص في تصميم لغات البرمجة، لكنه يعني أنك عندما تتعلم لغة برمجة، حاول أن تركز على الفصول الأولى التي تشرح مفاهيم البرمجة العامة، مثل المفهوم الأساسي للخوارزميات (algorithms)، وهذا يعني كيفية التفكير بأسلوب الحاسوب لحل المشاكل، والأساليب المختلفة التي تستخدم في بناء البرامج (برمجة هيكلية، كائنية structured, OOP)، ومعنى المتغيرات وأنواعها، وكيف يمكن أن تستخدم هياكل مختلفة للبيانات (مثل المصفوفات)، وكيف يمكن أن تتحكم في سير البرنامج (التفرع والعبارات الشرطية والتكرارات branching, conditional statements, looping). كل ذلك قبل أن تتعرف على إمكانيات والقواعد الإملائية للغة المحددة التي اخترتها (مثل VBA).
(في قيد الكتابة... يتبع بعد الصلاة إن شاء الله)...
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 8 أغسطس 2009 في 11:44
السلام عليكم ورحمة الله وبركاته
يرجى تسجيلي من اول المتابعين لو سمحتوا اتمنى اتكون هناك جائزة
فعلا استاذي اتمنى تعلم البرمجة وليس التصميم فقط
انا فعلا بخصوص الجداول والتسوية والاستعلامات والنماذج والتقارير والحمدالله شاطر لا واتفنن بعد
بس المشكلة في كتابة الاكواد اغلب الاكواد الي استخدمها في البرامج كلها cut و paste
او ممكن انشئ اكواد شفتها من قبل او عرفتها
بس كل الي اتمناه انه اقدر اكتب اكواد جديد تناسب برنامجي او انشئ وحدات نبطية بكيفية جديدة وفكرة جديدة
وهذي الشي الي خلاني اتعلم على الفجيوال بيسك لانه الاكسيس ضعيف من ناحية الاكواد لانه ينشئ اغلب الاكواد عنك
المشكلة شكل ما قلت فهم لغة الالة
وعلى فكرة الخوارزميات سمعتها اكثير بس ما فهمت شنهو تعني بالضبط شكل الحلقة الجاية حلوه بانتظارها
تم تعديل هذه المشاركة بواسطة مشارف في 8 أغسطس 2009 في 15:00
السلام عليكــم ورحمـة الله وبركاتــه ،،
بداية أحب أن أقدم إعتذار لأستاذنا الحبييب"أحمد مبارك " بسب تغيبى عن السلسلة ولكن يعلم الله انه غصبا عنى( أرجو أن يكون إعتذارا مقبولا(
أرحب بكل إخوانى المتابعين لهذه الحلقات الرائعة...كل عام وأنتم بخير جميعا ...اللهم بلغنا رمضان وتقبله منا يا رب العالمين
كنت أتابع الحلقات التى قد فاتتنى ووصلت إلى أسئلة اخانا الحبيب "مشارف" فبدأت أطرح أسئلة أخرى فى دفترى الخاص لأعرضها هنا....
فحزنت كثيرا عندما قرات تلك الكلمات لأستاذنا أحمد مبارك أسال الله أن يبارك فى وقته وعمره وعلمه...
اقتباسالمتابعون معي يعدون على أصابع اليد الواحدة،
عسى الله أن يبارك فى القليل ويأتى النفع بتلك القلة إن شاء الله
اقتباسوميولهم ليست نحو برامج المخازن والمبيعات
عامة أنا أفضل هذا الاتجاه لأسباب كثيرة..
اقتباسالمشكلة الأخرى أن هناك سلسلة أخرى بالفعل لبرنامج مخازن ومبيعات للأستاذ محمد فؤاد تركي، على الرغم من أنني قد وجدت أن هناك مجالاً بعد لقول المزيد بعد اطلاعي على كامل السلسلة، لكن هذا المزيد لن يتم الاطلاع عليه إلا من قبل عدم المهتمين به أصلاً (لأن الموضوع ليس مستقلاً بعنوان خاص مثل سلسلة الأستاذ محمد فؤاد)..
مع كل إحترامى وتقديرى للأستاذ محمد فؤاد تركى إلا أن السلسلة الخاصة به لم تبدأ تلك البدايه وأيضا هناك المزيد للإضافة هنا
فى النهاية أحب أن أذكر لك أننا فى إنتظار حلقاتك الراااائعه وبالله لا تحرمنا منها
جزاك الله خيرا وأترك الاسئلة فى رد آخر إن شاء الله
(الجزء الثاني)
هل هذه هي كل الحكاية؟ كلا بالطبع، إذا اخترت لغة مثل PL/SQL، لتطوير التطبيق، فقد لا تحتاج لأكثر من الإلمام بالوظائف التي توفرها أوراكل مع هذه اللغة، لكن في حالة لغة مثل VB، فإنك بحاجة إلى الوصول إلى قاعدة البيانات عبر تقنيات خاصة، في حالة منتجات مايكروسوفت، كانت تقنية DAO Data Access Objects تقوم بهذا الغرض، لكن مايكرووسوفت أصبحت توصي باستخدام تقنية ADO ActiveX Data Objects منذ عدة سنوات. هذا خلاف أن تكون متآلفاً مع بيئة التطوير التي ستختارها، مثلاً في الأكسس، شاشة محرر VBA، وشاشة تصميم النماذج والتقارير. بالمناسبة، في حالة VBA على سبيل المثال، هناك أيضاً بالإضافة إلى الوظائف المدمجة مع اللغة Built-in Functions، ينبغي أن تتعرف على موديل كائنات الأكسس Access Objects Model، وهذا يعني مجموعة الكائنات التي يوفرها الأكسس لتتعامل مع مختلف أجزائه، ولتقوم بالعديد من الوظائف. هذا يعني أنك متآلف جيداً أيضاً مع مفهوم الكائنات والخصائص والطرق. هل ذكرت شيئاً عن لغة SQL؟ إذاً امسح كل ما سبق واكتب SQL! لا أريد أن أجعل حياتك كابوساً، لكن لا أستطيع أن أجعلها حلماً جميلاً كذلك.
كان هذا مجرد لمحة على ما تحتاجه لتصبح حقاً مبرمج قواعد بيانات. وكما ربما تكون قد لاحظت، هناك العديد من المتطلبات، والمسألة ليست في غاية السهولة كما يتصورها البعض، ولكنها ليست صعبة مع بعض القيود. أقصد ببعض القيود أنك لا تشترط على نفسك أن تكون محترفاً في كل هذه الجزئيات معاً. من الصعب جداً أن تكون من صناديد تصميم قواعد البيانات، ومن مخضرمي الخوارزميات وهياكل البيانات، ومن فصحاء لغات من بينها SQL، ومن خبراء تقنية ADO الأفذاذ في نفس الوقت ، لكن من الممكن جداً أن تكون على دراية كافية بكل هذه المكونات لتنتج تطبيقات قواعد بيانات ممتازة. بالمناسبة، في حالة رأيتم أن من المفيد التعرف على ما تقدم من (أهوال)، فإن في الإمكان أن نخصص بعض الحلقات لمناقشة بعضها إن أردتم. كالعادة، لن تجعلك هذه المذكرات خبيراً، لكنها قد تفتح لك بعض الأبواب، وإذا نجحت في (استفزازك) لتعلم المزيد، فإنها لمذكرات عظيمة.
نعود الآن إلى المحطة الأولى، وهي برنامج المخازن والمبيعات. وأمر هذا النظام غريب. على الرغم من أنه أكثر البرامج شيوعاً وعرضة للتطوير والنقاش، إلا أنك ما تنفك تجده مثاراً للاختلاف والاستفسار المستمر. جزء من السبب يعود إلى حقيقة اختلاف المتطلبات الدقيقة بين نظام مبيعات إلى آخر على الرغم من توحد الأساس، وجزء يعود إلى كسل بعض المبرمجين، ولجوئهم إلى (توارث) نفس برامج سابقة حتى لو لم توفر المطلوب بالشكل المرضي، هذا علاوة على لجوء البعض إلى تجاهل بعض الأجزاء المستعصية و(دسها تحت البساط). لكن من المهم هنا التركيز على جزئية مهمة: ليست كل برامج المخازن والمبيعات متطابقة في التفاصيل.
دعني أوضح النقطة الأخيرة بشيء من التفصيل. هناك برامج مخازن صرفة، لا تبيع ولا تشتري مباشرة، ولكنها تتعامل مع أوامر توريد وأوامر صرف. فكرة هذه الأوامر تشبه تماماً فكرة فواتير الشراء والبيع. لكن المخازن الصرفة قد تتضمن أيضاً أكثر من فرع (مخزن)، لذلك تجد حركات مثل أوامر نقل أصناف من مخزن إلى آخر، قد لا تجدها في برامج المبيعات المباشرة (محلات أو صيدليات تتكون من مخزن واحد)، أو نقاط البيع على سبيل المثال. هناك برامج تتعامل مع أصناف قابلة للانتهاء، مثل بقالات المواد الغذائية والصيدليات، مما يبرز الحاجة لمعالجة قضية صلاحية الأصناف. على الرغم من أن أغلب المخازن تتعامل بأكثر من وحدة قياس، إلا أن هناك مخازن لا يهمها إلا وحدة قياس واحدة، ولا تحتاج إلى دعم الوحدات الفرعية. المقصود أنه من الأفضل دائماً تضمين أكثر الأجزاء التي يغلب الاحتياج إليها، لكن من غير العملي أن تتوقع من برنامج واحد أن يستوعب جميع (التشكيلات) والاحتمالات. في نقاشنا هذا بإذن الله، سنحاول التطرق إلى أغلب الاحتياجات، ولكن قد نهمل التفاصيل التي يسهل الحصول عليها.
(في قيد الكتابة.... يتبع بعد الصلاة إن شاء الله)....
(الجزء الثالث، ليس الأخير بإذن الله)
دعنا نختصر على أنفسنا الطريق، ونستفيد من مخطط الـ ERD الذي توصلنا إليه من قبل، ثم نواصل من هناك...
اتفقنا على أن الأصناف التي يتعامل بها المحل هي كائنات مستقلة مثلناها بكائن (صنف) في المخطط، ومصيرها أن تتحول إلى جدول في قاعدة البيانات. كل كائن له خصائص (تتحول إلى حقول حسب ما تقدم من قواعد). هذه الخصائص لا تأتي من الفراغ، وإنما تعكس واقع النظام في متناول اليد، ولذلك قد تختلف يسيراً من نظام إلى آخر، حسب احتياج النظام.
لا شك أن كل الأصناف في كل المحلات لا بد أن تملك رقماً واسماً على الأقل. ومن هنا فقط يمكن أن نختلف. بعض المحلات يهمها رقم تسلسل الصنف كثيراً، ولها طريق خاصة في ترميز الأصناف، الذي قد لا يكون رقماً البتة، بل مزيجاً من الأرقام والحروف التي لها معنى مصطلح عليه، مثل أن تخصص بعض الخانات لتمييز نوع أو مكان الصنف (مثلاً، أول رقمين لمجموعة الصنف، وأربعة أرقام لرمز الصنف نفسه)، بل إن هناك من المصممين من يرى أن يتم تمييز تواريخ صلاحيات الأصناف في حقل الترميز نفسه. سنتكلم عن هذا بإذن الله عند الحديث عن التعامل مع صلاحيات الأصناف. هناك في المقابل من لا يهتم بترميز الصنف، ويسمح للبرنامج أن يعطي أرقاماً متسلسلة، بشرط ألا يتكرر ترميز واحد لصنفين مختلفين. من الممكن طبعاً دمج الطريقتين، واستخدام ترقيم تلقائي لتمييز الأصناف داخلياً في البرنامج، مع إتاحة حقل ترميز نصي للمستخدم من أجل إدخال الترميز الخاص. في حالة استخدام ترميز خاص يعتمد على عدد الخانات ومعنى كل خانة، فإنه يكون من المهم للمبرمج أن يتأكد من سلامة الترميز المدخل من خلال قواعد التكامل (مثل قواعد التحقق من الصحة في أكسس validation rules) ومن خلال الكود. اختيار كل هذا يعتمد على احتياج النظام، وحتى عند إتاحة الحرية للمبرمج من صاحب النظام، قد يختار المبرمج الطريقة الأسهل (وهذا اختيار وجيه وجيد)، أو قد يختار الطريق الأصعب من أجل جعل النظام مستعداً لكل الاحتمالات. ليس المقصود في نقاشنا هنا أن نغطي كل الاحتمالات، وإنما أن نعطي مثالاً لهذه الاحتمالات، وأن نتعلم الخروج من قوقعة القوالب الجاهزة، وأن نفكر!
بالنسبة لاسم الصنف، قد تحتاج أحياناً إلى إضافة الاسم الإنجليزي، وأحياناً أخرى (مثل الصيدليات) حتى إلى الاسم العلمي، وهذا يعتمد كالعادة على حاجة المستخدم، وطريقته في النظام اليدوي (إن كان له نظام يدوي). بعض أنواع الأصناف لها أيضاً نوع ومصنّع، وتفاصيل أخرى مثل الحد الأدنى للطلب، وهو الكمية التي إن نزل إليها رصيد الصنف (أو نزل عنها)، ينبغي عندها أن يسارع صاحب المحل بطلب كمية جديدة أو شراء كمية جديدة، وهذا يساعد صاحب النظام على الانتباه إلى توفير الأصناف التي عليها طلب كثير، حتى لا يقع في فخ النفاد المفاجئ لصنف معين. لاحظ من فضلك أن هناك حاجة إلى آلية يتم بها تنبيه المستخدم إلى الوصول إلى (أو تجاوز) الحد الأدنى لصنف، وبعيداً عن الآليات المعقدة، من المناسب توفير تقرير للمستخدم يشغله دورياً حسب رغبته تظهر فيه الأصناف التي وصلت أو تجاوزت حدها الأدنى. قد تحتاج أيضاً إلى تضمين حقل لرقم الرف، هذا من أكثر الحقول فائدة لعمل المستخدم اليومي في أنظمة المبيعات في حالة التزام المستخدم بترتيب الأصناف في رفوف أو أماكن مخصصة. مثلاً، قد يحتاج بائع جديد إلى وقت طويل لحفظ أماكن الأصناف المختلفة، وقد يساعده هذا الحقل في البداية.
موضوع آخر هو مسألة الحقول المحسوبة. هل يمكن أن يحوي جدول الأصناف حقولاً محسوبة؟ بالطبع، بعضاً من أهم الحقول المحسوبة في النظام. في أول هذه الحقول يأتي رصيد الصنف (أو الكمية المتوفرة). واحدة من أصعب المهام في برامج المخازن تتبع رصيد الصنف، الذي يتغير باستمرار انعكاساً لمختلف الحركات في المخزن، وكلما زادت الحركات زاد معد ل التغيروصعوبة النحافظة على القيمة الصحيحة للكمية المتوفرة. مثلاً، إذا كانت الحركات تشمل مردودات البيع والشراء بالإضافة إلى البيع والشراء فإن اختيار تضمين الحقل المحسوب في جدول الأصناف يعني أن على المبرمج أن يبذل المزيد من الجهد في الانتباه لكل هذه التغييرات. بعض هذه التغييرات ليست واضحة في البداية. مثلاً، قد يحتاط المبرمج لحركات البيع والشراء ومردوداتهما، لكنه ينسى احتمال تغيير فاتورة محفوظة أو حذفها أو زيادة بند فيها. كثير من البرامج الموجودة تتفاضل في فكرة وآلية هذا التتبع، سواء كان عبر حقل محفوظ في الجدول أو يتم استخراجه (على الطاير) عند الاستعلامات والتقارير المختلفة. سنتكلم بإذن الله عن هذا الأمر عند الكلام عن الفواتير.
هل توجد حقول محسوبة أخرى يمكن أن يشملها جدول الأصناف؟ نعم يمكن. هل من الممكن أن تفكر في مثال لذلك؟ أحياناً تحتاج في بعض الأنظمة (خاصة تلك المرتبطة بأنظمة محاسبة) إلى أن تحصل على قيمة المخزون من الصنف في تاريخ معين (آخر فترة محاسبية). المشكلة أن الكميات المتوفرة في المخزن قد تم شراؤها بأسعار مختلفة، ومن الصعب (أحياناً مستحيل) تتبع كل كمية من الصنف وضربها في سعر شرائها بعد فترة طويلة من الحركة. واحد من الحلول الممكنة استخدام طريقة استخراج المتوسط المرجح لسعر الصنف، ويتم ضرب هذا المتوسط بالكمية المتوفرة في آخر الفترة. لاحظ أن هذا الحقل محسوب.
تكلمنا أيضاً من قبل عن حكاية الكمية الافتتاحية. في الغالب لن يبدأ صاحب المحل نشاطه من يوم شرائه لبرنامجك، ولكنه سيبدأ استخدام البرنامج مع وجود كمية من الأصناف في مخزنه لم يتم تسجيل حركاتها (فواتير بيعها وشرائها) حتى يمكن أخذها في الحسبان عند احتساب الرصيد المتوفر من الصنف. الحل؟ لا بد من وجود طريقة ما يتم عبرها توثيق هذه الكميات الموجودة أصلاً منذ البداية، وواحدة من الطرق لذلك استخدام حقل في جدول الأصناف لحفظ الكمية الافتتاحية حتى يتم تضمينها في الاحتسابات فيما بعد. مثلاً بعد ثلاث عمليات شراء، سيكون رصيد الصنف الفلاني هو مجموع الكميات في هذه العمليات بالإضافة إلى الكمية الافتتاحية (طبعاً ناقصاً أي كميات في عمليات بيع مثلاً). لاحظ أن إدخال هذه الكميات الافتتاحية من مهمات المستخدم.
كل هذا جميل ولاغبار عليه، لكن دعنا الآن نتعرض لبعض النقاط التي قد تكون موضع نقاش، سنمر هنا على نقطتين مهمتين بإذن الله، ثم نغادر جدول الأصناف.
(في قيد الكتابة... يتبع إن شاء الله بعد كوب الشاي)...
(الجزء الرابع، والأخير لهذه الحلقة)
وحدات القياس، وما أدراك ما وحدات القياس! من الحقول التي تميز الصنف وحدة قياسه. قد يحدث أن يتعامل المخزن مع وحدة قياس واحدة، وعندها لا يكون لهذا الحقل أي أهمية تتعدى توثيق وحدة قياسه، ولا يكون عندئذ أي إشكال. مثال على ذلك متجر لبيع الجوالات، لا يتعامل إلا بالقطعة. لكن في كثير من الأحيان يتم التعامل بأكثر من وحدة قياس للصنف الواحد في الحركات المختلفة. في هذه الحالة يصح أن نقول إن لهذا الصنف أكثر من وحدة قياس واحدة. المشكلة ليست في توثيق هذه الوحدات، لكن المشكلة في التعامل الصحيح مع الكميات عند الحركات المختلفة، من أجل الاحتساب الصحيح لرصيد الصنف. عادة ما يتم احتساب إجمالي سطر في فاتورة بيع مثلاً، بضرب الكمية في سعر الوحدة، لكن الكمية هنا قد تتغير مع تغير الوحدة. مثلاً، عند شراء صنف دواء، قد تكتب الكمية (7)، والسعر (350)، مع تحديد وحدة القياس بباكت. لا مشكلة مادام أن سعر الباكت الواحد هو بالفعل 350. فاتورة أخرى يظهر فيها نفس الصنف بكمية (10) وسعر (70)، مع وحدة القياس كشريط. لا مشكلة أيضاً مادام سعر الشريط هو 70 (ربما كان في الباكت خمسة أشرطة). المشكلة قد تظهر عند استخراج رصيد الصنف، هل هو (7 + 10 = 17(؟ طبعاً الإجابة خاطئة تماماً. كيف يمكن أن تعلم الرصيد الحقيقي؟ لا يمكنك ذلك إذا لم تكن تعلم العلاقة بين الباكت والشريط. كذلك، ينبغي أن تختار وحدة واحدة ليتم التعبير بها عن الرصيد. إذا اخترت الشريط كوحدة أساسية، وعلمت أن الباكت يحوي خمسة أشرطة، فإن الرصيد يصبح (7 * 5 + 10 = 45).
بعض الحلول التي ربما كنت صادفتها، تحديد وحدتين (أو ثلاث) فقط للصنف، مع تحديد ما تعادله الوحدة الثانية من الوحدة الأولى. البعض قد يفكر في إجبار المستخدم على اختيار وحدة واحدة (الأصغر مثلاً)، وإدخال كل الحركات بها. هذا الخيار الأخير لن يعجب المستخدم كثيراً في الواقع، لكن الكثير من المستخدمين عندنا قد تعلموا أن بعض الحركات لا يمكن تنفيذها بالحاسوب! ولهذا تعرف مدى خيبة هذا المستخدم عندما يكتشف فيما بعد أن كل العالم يوفر هذه الإمكانيات. مثل هذه الأمثلة تجعل البعض يرتاب في البرامج المحلية، بالذات المصممة من قبل أفراد، ويحسب ألف حساب قبل أن يفكر في استخدامها (إلا لو كان يعاني من محدودية الميزانية). الحل الأكثر مرونة هو تكوين جدول مستقل للوحدات الفرعية لكل صنف، بحيث يتم اختيار وحدة واحدة أساسية من قبل المستخدم لكل صنف، وتحفظ في جدوا الأصناف، ثم تتم إضافة وحدات أخرى (فرعية) للصنف في جدول الوحدات الفرعية، مع ربط الجدولين بحقل رمز الصنف بالطبع. لاحظ أنه من المهم تضمين حقل لمعامل التحويل بين الوحدتين في جدول الوحدات الفرعية. مثلاً، صنف معين وحدة قياسه الأساسية هي الشريط (في جدول الأصناف). وله وحدة قياس فرعية هي الباكت (في جدول الوحدات الفرعية) مع حقل معامل التحويل يساوي 5 (كل باكت يساوي خمسة أشرطة). بهذا يمكن دائماً احتساب الرصيد بالوحدة الأساسية لكل صنف، مع إمكانية التحويل إلى هذه الوحدة في حالة وجود حركات بغير هذه الوحدة. يجب أن تلاحظ هنا مقدار العبء البرمجي الذي ألقاه هذا المتطلب (تعدد الوحدات) على كاهل المبرمج.
موضوع آخر هو سعر الصنف. دائماً تجد حقل سعر الصنف في جدول الأصناف، على الرغم من حقيقة أن سعر الصنف ليس بالضرورة من ميزات الصنف الثابتة، إذ أنه من الممكن جداً أن يتغير سعر الصنف في كل فاتورة تبعاً للزبون أو لطروف أخرى. ربما كان من المناسب تسمية هذا الحقل (السعر الافتراضي)، أن يتم استحضاره إلى الفاتورة بشكل افتراضي (ليعطي أساساً للمفاوضة على سبيل المثال)، مع إمكانية تعديله من قبل البائع. لاحظ، مرة أخرى، أن هذا يرجع تماماً إلى سياسة المستخدم؛ بعض المحلات لا يجوز فيها للبائع تعديل السعر (مثل نقاط البيع)، ولذلك لا يتغير السعر إلا بين حين وآخر، وعلى هذا يمكن اعتبار السعر من الخصائص المميزة للصنف.
هل هناك شيء آخر يتعلق بالصنف؟ بالطبع هناك ما الكثير مما قد ترد الحاجة إليه، لكن هذا يختلف من نظام إلى آخر، وليست هناك أية نقطة في محاولة حصره. لكن دعني أختم الحلقة بالكلام عن نقطة تتعلق بالأصناف أغفلناها عمداً إلى الآن. كثيراً ما تكون الأصناف التي يتعامل بها المحل كثيرة جداً ومتشعبة، لكنها تنقسم طبيعياً إلى مجموعات مختلفة، وقد يكون من المفيد معرفة هذه المجموعات، بل قد يتم التعامل بشكل ما مع محموعات الأصناف أحياناً، وليس مع الأصناف المفردة. مثلاً، في سوبر ماركت، قد يتم تقسيم الأصناف إلى مواد غذلئية، ومواد تنظيف، وأدوات منزلية، ... إلخ. في صيدلية قد يتم تصنيف المواد على أساس أنها حقن أو سوائل، أو حبوب، أو على أساس أنها فيتامينات أو مضادات حيوية أو للضغط أو السكري (عافانا الله وإياكم من كل شر). وقد يحتاج المستخدم إلى استخراج العديد من التقارير حسب المجموعة، أو خلاف ذلك. المهم، في هذه الحالة ينبغي إضافة جدول للمجموعات مع ربط كل صنف بمجموعة عبر حقل مفتاح أجنبي (رقم المجموعة) في جدول الأصناف. طبعاً في هذا بعض التبسيط لأنني أتجاهل حقيقة أن التصنيف قد يكون على عدة مستويات، لكن المقصود هو المثال، ولا فائدة من التشعب كثيراً.
أظنني سأتوقف هنا في هذه الحلقة، وأرى الآن بعض التعليقات من الأخ مشارف والأخ سامح، سأرد عليها بإذن الله فيما بعد خارج الحلقة، لكن حتى ذلك الحين، أرجو أن تكون قد وصلت إلى إجابة مقنعة للسؤال الملح: هل أنت.........؟
(يتبع إن شاء الله)....
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 8 أغسطس 2009 في 19:29
ياااااااه .. أنا كنت فين يا جماعة وانتو فاتحين المدرسة دى ؟؟
ياريتنى كنت معاهم ( عملوها الوحوش) ...
والله يا أستاذ أحمد مبارك انت عظيم .. وأعظم صفاتك التواضع والأسلوب الآخاذ ..( إيه رأيك فى الآخاذ دى؟؟)
والأستاذ محمد ندا .. والمشاكس .. ومشارف .. والله يا رجالة ما قصرتو
بس أنا زعلااااااااان عشان أنا جيت متأخر .. (ودى أصلاً طبيعتى) ..هههههه
أنا سعيد جدا ( مش إسمى) .. عشان لقيتكم .. وأتمنى أن أتواصل معكم فى الفترة القادمة مع إنى مشغول .. بس الحاجة إلى التعلم
تفرض على أن أجد وقتاً لذلك
أنا أعلم القليل عن قواعد البيانات ولى تجارب برمجية بسيطة وأتمنى أن أحترف معكم وأفهم ( مع إنى أبو المفهومية) ..
تحياتى لكم جميعاً وخصوصا .. الأستاذ فلان والأستاذ علان
أخوكم .. م/ نبيل عبد الحميد
تم تعديل هذه المشاركة بواسطة nababeer في 9 أغسطس 2009 في 00:48
سبحان الله وبحمده ... سبحان الله العظيم
الأستاذ/أحمد مبارك الحيقى.
ما هذا الفتح العظيم وهذه الإنطلاقة المدوية بسرعة 300 سطر فى الدقيقة .. ما شاء الله لا قوة إلا بالله ...
فعندما انتهيت من قراءة الجزء الأول إعتقدت بحكم العادة فى الحلقات الأخيرة قبل هذه الحلقة أننى أنهيت نصف الحلقة .. ولكننى عند المتابعة وجدت الجزء الثانى .. فالثالث .. فالرابع ..
فكان لابد من التوقف وإضافة هذا الرد لأقول ما شاء الله لا قوة إلا بالله ..... وللترحيب بإخواننا الجدد.
العضو الجديد للسلسة أحونا nababeer ... مرحباً بك على متن السلسلة .. مشاركاً ومبدعاً .. ومستفيداً بعد.
ويبدو من الوهلة الأولى أن أخينا Slave المشاكس سيجد من ينافسه فى خفة الظل والروح المرحة .. .. ليست قوة واحدة الآن بل إثنتان.
مرحباً بك مرة أخرى .. وأؤكد لك أن كل وقت تقضيه هنا سيعود بالفائدة علينا وعليك .. كما حدث ويحدث معنا.
تحياتى
محمد ندا
تم تعديل هذه المشاركة بواسطة Mohamed Nada في 8 أغسطس 2009 في 23:30
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
...
تعقيب على الجزء الثانى من الحلقة
اقتباسبالمناسبة، في حالة رأيتم أن من المفيد التعرف على ما تقدم من (أهوال)، فإن في الإمكان أن نخصص بعض الحلقات لمناقشة بعضها إن أردتم
أنا أصوت لذلك .. أنا مع التعرف على كل من هذه الأهوال .. لأن هذه الأهوال تحمل بين جنباتها علماً مطلوب الإلمام به .. أو ببعضه حتى لا نقف أمام المصطلحات فاقدى النطق.
محمد ندا
تم تعديل هذه المشاركة بواسطة Mohamed Nada في 8 أغسطس 2009 في 23:53
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
أستاذ أحمد مبارك الحيقى .. ومديرنا محمد ندا ..
كنت عاوز أخد رأيكم فى حاجة صغيرة والأراء مفتوحة للأعضاء .. بعد قصة كفاحى مع الأكسس توصلت إلى أنه
أفضل وسيلة لتحليل النظام ودراسته المبدئيه هى أن يتم تصميم التقارير المطلوبه أولاً ولو حتى على الوورد أو الإكسل .. بحيث
يتم التأكيد على أن هذه المعلومات هى المطلوبه وتصنيف التقارير ثم بعد ذلك إنشاء الخوارزم ثم الجداول طبقاً للخوارزم
ثم الإستعلامات والنماذج .. وبعد ذلك تصميم التقارير مرة أخرى .. وأنا هنا لا أقصد الأكسس تحديداً .. وإنما الطريقة على أى بيئة برمجية
وقد جربت أنا هذه الطريقة ووفرت على الكثير من الوقت والجهد وربما سنحت لى الفرصه أن أشارك ببرنامجى المتواضع والمتخصص فى
إدارة المواقع ( مش مواقع الويب .. لا .. مواقع المشروعات .. رمل وزلط وخلافه .. هههه) .. ولكن كنت أحتاج تنويه من أستاذ أحمد مع الإعتذار على الإطالة
واستغلال مساحة زائدة ..( هو إنتو بتأجروا السطر بكام ؟؟ ).. وتحياتى للمشاكس
قشطة يا رداله
سبحان الله وبحمده ... سبحان الله العظيم
جزاء الله خير على هذه الحلقة الجميلة
والعمل الذي تبذله لصالح اخوانك بهذا المنتدى
ونسئل الله ان يرزقنا واياك العلم النافع
قراء هذه الحلقة مره واحدة لا يكفي بل يتوجب علينا قراءتها عدت مرات ونتأمل كل جزء فيها
لنستنتج منها الافكار و الاقتراحات وايضا نحاول ترسيخ المعلومات بقدر المستطاع
اقتباسأنك ستحتاج لمهارة البرمجة...
نعم صدقت وهذا ما نطمح إليه
اقتباسلكن من الممكن جداً أن تكون على دراية كافية بكل هذه المكونات لتنتج تطبيقات قواعد بيانات ممتازة.
لا فض فوك
في الأيام التي مضت تخيل اني مررت بعدت مواضيع من ضمنها N-Tier و ايضا ADO.NET و بعض أوامر الـ SQL
وما زلت اقراء بها واعيد القراءة و ادونها في ملفات الورد .
كان نفسي اسئلك ما سوف ينتهجه تطبيقنا العملي بخصوص هذه المواضيع ولكن ربما الوقت بدري على هذه الاسئلة والدخول بها
لأننا في نقاشنا هذا نحن نبحث عن الافكار والإقتراحات التي تساعد المستخدمين على قبول هذا النظام والمنتج بشكل جيد وتلبيت اغلب الاحتياجات لهم
اقتباسفي حالة رأيتم أن من المفيد التعرف على ما تقدم من (أهوال)، فإن في الإمكان أن نخصص بعض الحلقات لمناقشة بعضها إن أردتم. كالعادة، لن تجعلك هذه المذكرات خبيراً، لكنها قد تفتح لك بعض الأبواب،
اتمنى ان يدخل هذا الجزء في المذكرات والسلسلة المطروحة لتكون مذكراتك شاملة
اقتباسدعنا نختصر على أنفسنا الطريق، ونستفيد من مخطط الـ ERD
هل يمكننا انشاء هذا المخطط عن طريق برنامج Microsoft Office Visio ؟؟
في جزء الترقيم
في نظري لو يكون الترقيم مركب يكون افضل واحسن للتنظيم وعند مشاهدة البائع الرقم دون أن يرى الصنف يستطيع تميز هذا الرقم ان من الرف الفلاني المكان الفلاني
وفي الترقيم يأخذ نوع الصنف( مواد غذائية او أدوات مكتبية وغيرها ) في الاعتبار وله كود معين (رقم معين)
ومن هذا الرقم يتم استنتاج رمز الصنف او الترقيم التلقائي للصنف
اقتباسالممكن جداً أن يتغير سعر الصنف في كل فاتورة تبعاً للزبون أو لطروف أخرى
إليس من الممكن وضع حقل في بيانات العملاء ويكون مسؤول عن الخصم للنوع الزبون اي مثل
الزبون الفلاني يحصل على خصم 5 % والزبون الفلاني من الممكن الحصول على 8% وهكذا مع كل الزبائن الذين يشملهم الخصم
واتمنى ان اكون طرحت شي في نوع من الصحة والقبول .
وشكر لك يا استاذ احمد
ودمتم جميعا بخير
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الأول
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الثاني
استغفر الله الذي لا إله إلا هو الحي القيوم و أتوب إليه
ما شاء الله... هذه المرة، أعترف، قد تفاجأت بالتفاعل السريع وسررت بالذات لانضمام الأخ المهندس نبيل إلى مجلسنا... كما قال الأستاذ محمد ندا، خفة روح جميلة، أسأل الله أن يؤلف بيننا ويجمعنا في دار كرامته... آمين.
الأخ الكريم محمد المسيفري
اقتباسيرجى تسجيلي من اول المتابعين لو سمحتوا اتمنى اتكون هناك جائزة
أنت بالفعل السباق دوماً، ولو كانت هناك جائزة، فأنت تستحقها حقاً...
اقتباسوعلى فكرة الخوارزميات سمعتها اكثير بس ما فهمت شنهو تعني بالضبط شكل الحلقة الجاية حلوه بانتظارها
أعدك بإذن الله أن أخصص بعض الحلقات لمناقشة مثل هذه المفاهيم، وللمساعدة في الدخول إلى عالم البرمجة... شكراً على تفاعلك، وما زلت أدخر الكلام عن تساؤلاتك السابقة بخصوص نظام المبيعات إلى الحلقات القادمة بإذن الله.
الأخ الكريم سامح
لا داعي للاعتذار، وتأكد أنني شخصياً لا أؤمن بالكثرة، مرحباً بك أخي الحبيب وبتساؤلاتك.
الأخ المدير الفاضل محمد ندا
أحرجتني بإطرائك المبالغ، وقد سبق الوعد للأخ مشارف بالخوض في غمار تلك المغاور
اقتباسحتى لا نقف أمام المصطلحات فاقدى النطق.
شكراً لك.
الأخ الكريم نبيل عبد الحميد
مرحباً بك مرة أخرى، وأرجو أن يروق لك مجلسنا، وألا تبخل علينا بما عندك، فنحن هنا في حاجة ماسة إلى الأخذ والرد والإضافة والتصحيح. بالنسبة لملحوظتك بشأن التحليل، فأنا أتفق معك تماماً، وهذا هو رأيي بالضبط، وقد عبرت عنه في الحلقة رقم (12) بهذه الفقرة:
اقتباسالوسيلة المهمة جداً التي لا تستطيع أن تعمل بدونها، هي كل التقارير والنماذج والمستندات المطبوعة المتداولة في النظام. التقارير هي مخرجات النظام. النماذج والمستندات تمثل مدخلات النظام. النماذج هي عادة حقول تملأ بالبيانات، في حين أن المستندات هي عبارة عن وثائق مثل سندات مالية وخلافه. التقارير هنا تلعب دوراً مميزاً في غاية الأهمية. الطريقة الشهيرة في التحليل هي البدء من المخرجات (output) لاستنتاج المدخلات (input) وفهم النظام. حتى عند السؤال المباشر، أنت عادة تسأل عن (المطلوب) ثم تسأل كيف يمكن الحصول على هذا المطلوب. هذا يشمل حالة تصميم نظام لأتمتة نظام يدوي أو بدلاً عن نظام حاسوبي سابق. ادرس المخرجات بعناية، لأنك يجب أن توفر هذه المخرجات في النهاية. الخلاصة هنا: اجمع كل ما يمكنك من أوراق.
وكلامك يدل على خبرة... لكن في مثالنا هذا (برنامج المخازن والمبيعات)، بسبب شيوع النظام وألفة أغلب الناس به، وشهرة تقاريره، وتواتر السلاسل والدروس التي تشرح وتوضح بل وتطبق تقاريره ومتطلباته، فقد اخترت تجاوز التحليل والبدء من التصميم. بل إنني قد اخترت البدء من بعد الـ ERD الذي سبق أن توصلنا إليه. لكن هذا لا يتنافى أبداً مع اتفاقي التام برأيك السديد.
الأخ الكريم sandm
وإياك جزى الله خيراً، أسأل الله أن يفتح عليك في مشوارك...
اقتباسهل يمكننا انشاء هذا المخطط عن طريق برنامج Microsoft Office Visio ؟؟
عني شخصياً ليس لي أدنى معرفة بهذا البرنامج، لكن أظن أنك ستجد مثل هذه الإمكانية على الرغم من أن تخصص هذا البرنامج في ظني نحو تمثيل مخططات المشاريع وتدفقات البيانات، وأظن أن بحثاً سريعاً في الجوجل سيخبرك أن هناك برامج أخرى متخصصة في رسم هذا المخطط، بعضها مجاني. أنا شخصياً، استخدمت دوماً الورقة والقلم (كلاسيكي دقة قديمة). هل يملك أحد ما هنا أدنى فكرة؟
بالنسبة لترقيم الصنف، فهذا صحيح، لكنه يعتمد دوماً على صاحب النظام. إذا كان صاحب النظام يتبع بالفعل طريقة ما في ترميز الصنف (أو مستعد لتبني طريقة منظمة في الترميز) فإن هذا أفضل بلا شك كما تفضلت، لكنه يضع عبئاً إضافياً على عاتق المبرمج بالطبع، لأن وظيفة المبرمج قد تتعدى حدود التأكد من صحة الترميز إلى توليد هذا الترميز تلقائياً بناءً على قواعد ثابتة (مثلاً، ألصق رقم مجموعة الصنف مع رقم آخر رمز لهذا النوع من الصنف زائداً واحد).
وبالنسبة لخصومات العملاء فملحوظتك صحيحة أيضاً، وهذا يأتي عند الحديث عن جدول العملاء بإذن الله. لكن في جدول الأصناف يرد الحديث عن سعر الصنف ابتداءً، قبل أي خصومات، وهل يكون ثابتاً (مثل نقاط البيع) أو قابلاً للتغيير (مفاوضة أو تطبيق خصومات العملاء الخاصة).
شكراً جزيلاً لتفاعلك الممتاز، والمعذرة عن التقصير.
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 9 أغسطس 2009 في 03:21
اشكرك على الردود والتعليقات
اقتباسأسأل الله أن يؤلف بيننا ويجمعنا في دار كرامته... آمين.
اللهم آآآمين
بما أننا نتكلم عن الاصناف وتطرقة إلى نفاذها والكمية الموجودة
فالنفرض ان البرنامج يستخدم في عدة فروع
وعميل ما يريد كتاب عنوانه كذا وكذا وهو قد نفذ من هذا الفرع والعميل مُصر يريد هذا الكتاب
نخبره أن الكتاب موجود في المنطقة الفلانية والفرع الفلاني وها كذا
هذه النقطة تدخل في الحقول المحسوبة و ايضا توفر الصنف من عدمه كيف لنا ان نضمن هذا
تم تعديل هذه المشاركة بواسطة sandm في 9 أغسطس 2009 في 10:45
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الأول
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الثاني
استغفر الله الذي لا إله إلا هو الحي القيوم و أتوب إليه
الأستاذ الكبير أحمد الحيقى
والله أنت أخجلتنى .. ولكننى فعلاً لم أكن وصلت للحلقة 12 ولكن كل مرة أقرأ آخر صفحة من أجل التحديث إلى جانب القراءة من أول الموضوع من أجل التواصل . فلذلك أستمحيك عذراً ونظريتى والله لم تكن إلا للسؤال ومعرفة مدى الجدوى وإن كان هناك طرق أفضل .. وأنا أعلم جيداً أن ما عندى أقل بكثير مما هو عندك لأن هذا واضح جداً من سردك وإيضاحك للأمور وينم عن خبرة برمجية رائعة ولكن فى النهاية أنا اعتبر نفسى تلميذ فى مدرستك الرائعة .. وليس عيباً أن يكون كل منا تلميذ فى مدرسة الآخر طالما ان هذا الآخر ملم بما يشرحة جيداً .. فنحن هدفنا فى النهاية أن نرتقى ونعى المفهوم الحقيقى للبرمجة بحيث تتغير منهجية التفكير ويتقلص الوقت اللازم لصناعة برنامج ويبدأ الإتحاد للعمل كفريق عمل لصناعة البرامج الكبيرة ..و ...و .. وكل هذا أشعلت انت فتيله وألهبت حماس كل المهتمين بالموضوع وربما غير المهتمين أيضاً ..
وفقك الله وجعله فى ميزان حسناتك ..
وسلامى إلى ندا والمشاكس والخاله بالسعودية ومحمد وطارق بتونس وإلى نورا ومشمش بمناسبة عيد الميلاد ومن بابا وماما إلى جنى وأحمد وكريم بمناسبة الأجازة .. ونطلب فى نهاية البرنامج أغنية ( أحمر على أبوه يا بطيخ ) ...
أخوكم نبيل
سبحان الله وبحمده ... سبحان الله العظيم
السلام عليكــم ورحمـة الله وبركاتــه ،،
فعلااا حلقة اكثر من رائعة.. يزيدها جمالا تواصل الإخوة كلهم ومشاركاتهم الجميلة..تحية لكم عامة إخوانى وخاصة لأستاذنا أحمد مبارك..
عندى مداخلة بسيطة بخصوص السعر..هل من الممكن أن يكون السعر الإفتراضى الذى يظهر لى مباشرة هو آخر سعر شراء من مورد أو بيع لعميل بحيث يكون لكل عميل أو مورد سعر بيع أو شراء خاص به؟؟؟؟ وهل بهذا قد حققنا الاستقرار لحقل السعر من جهة ومنجهة أخرى حققنا سهولة التغيير فى اى وقت؟؟؟
نسيت أن أرحب بأستاذ نبيل .. مرحبا بك معنا..أعجبنى توقيعك جدا ..
فى إنتظار باقى الحلقاات
سامح بك معاذ .. والله التوقيع وصاحب التوقيع تحت أمرك .. وأهلاً بيك
سبحان الله وبحمده ... سبحان الله العظيم
أخي العزيز sandm
إذا كمن تقصد الاستعلام عن البيانات من فروع بعيدة، فقد طرحت هذا السؤال قبل سنتين أو ثلاث، ولم أحصل على إجابة... وهذا هو رابط السؤال:
التطبيقات التي تتوزع على أكثر من فرع، إما أن:
من أجل الاستعلام من فرع إلى آخر نحتاج إلى اتصال بين قواعد البيانات. للأسف، يظهر، على حد علمي، أن الأكسس لا يوفر إمكانية الاتصال المباشرة بين قاعدة بيانات وأخرى من أجل الاستعلام المباشر (كما يحدث في شبكة محلية مثلاً، إذ يمكن أن ترتبط مباشرة بقاعدة بيانات أخرى عبرالكود أو بواسطة الجداول المرتبطة).
الذي وجدته في السابق في بعض الأنظمة هو الاعتماد على الاتصال غير المباشر. هذا يعني أن تتصل الأجهزة التي تحوي قاعدتي البيانات عبر الإنترنت أو حتى عبر خطوط خاصة مستأجرة من شركة الاتصالات، ثم يتم تبادل (ملفات) عادي بين الجهازين عبر أي وسيلة، مثل برنامج PCAnywhere أو الأدوات الجاهزة في الويندوز (مثل HyperTerminal)، أو أي وسيلة أخرى. نظرياً، من الممكن أيضاً كتابة كود يستخدم الـ Winsock بين قاعدتي بيانات الأكسس في الفرعين من أجل تبادل البيانات... والله أعلم.
أرجو إثراء النقاش من الإخوة أصحاب الخبرة في هذه التقنيات...
الأخ النبيل نبيل
يارجل، لم نخرج من مشكلة لقب أستاذ التي يصر الإخوان على استخدامها، حتى أتيتنا ب(الأستاذ الكبير)... أرجو ترك هذه الألقاب، وقد أحسنت في هذا التعبير:
اقتباسكل منا تلميذ فى مدرسة الآخر
بارك الله في أوقاتنا وجهودنا جميعاً...
الأخ العزيز سامح: أنا الآن مضطر إلى الخروج، وأرد عليك بعد المشوار بإذن الله...
مرحبا إخوانى....
اقتباسسامح بك معاذ .. والله التوقيع وصاحب التوقيع تحت أمرك .. وأهلاً بيك
مشكووور أخى الحبيب...
اقتباسالأخ العزيز سامح: أنا الآن مضطر إلى الخروج، وأرد عليك بعد المشوار بإذن الله...
بالتوفيق إن شاء الله أستاذنا الحبيب...فى الإنتظار