تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف تصمم قاعدة بيانات
#21
السلام عليكم

رائع اخي /ابو همام  احب الافكار المبتكرة

ماذا عن بضاعة اول المدة ؟  
وماذا عن فروقات الجرد العجز او الزيادة؟

هل نستخدم نفس الحقلين حسب الحاجة زيادة او نقص. 

الن ياثر  على سرعة البرنامج الاستعلام عن الكميات كل مرة نحتاجها  مع مرور الوقت وزيادة المشتريات والمبيعات.

اذكر اني جربته من قبل على قادة بيانات اكسس تحتوي على مليون صف
وكان النتيجة غير مرضية  بالذات عند معاينة كل الكميات المتوفرة يعني عرض كل الاصناف مع كمياتها.
(ملاحظة كانت من 3 جداول  جدول حركةالمشتريات ومردودها - حركة المبيعات ومشترياتها - جدول حركة الجرد والتالف ) 

(كنت احفظ الكمية بالموجب او بالسب  في نفس الجدول )
الرد }}}
تم الشكر بواسطة: asemshahen5 , viv , ابراهيم ايبو , awidan76
#22
وعليكم السلام ورحمة الله

إقتباس :[b]ماذا عن بضاعة اول المدة ؟  [/b]

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

بحيث يمكننا باي وقت الاستعلام عن فواتير البضاعة المفقودة والتالفة او فاتورة اول المدة والتي تحمل تاريخ اول بداية العمل بالمنظومة ايضا وهو تاريخ الفاتورة
كما نحصل على تاريخ كل البضائع التالفة او الضائعة وكمياتها وبتواريخها وهو تاريخ فتح الفاتورة

إقتباس :الن ياثر  على سرعة البرنامج الاستعلام عن الكميات كل مرة نحتاجها  مع مرور الوقت وزيادة المشتريات والمبيعات.

لن يؤثر استخدم Sqlite او mySQL او FireBird بالنسبة الى Access لا ارى اي منطق في استخدامها في الدلفي حيث ان التعامل مع كل قواعد البيانات بنفس الكود ونفس الاسلوب ونفس الطريقة
وعلى العموم انا جربت عليها حوالي 100 الف فاتورة ولم اللاحظ اي مشكلة

إقتباس :وكان النتيجة غير مرضية  بالذات عند معاينة كل الكميات المتوفرة يعني عرض كل الاصناف مع كمياتها.

(ملاحظة كانت من 3 جداول  جدول حركةالمشتريات ومردودها - حركة المبيعات ومشترياتها - جدول حركة الجرد والتالف ) 

يبدو لي ان هذا سبب المشكلة فكلما كان هناك جداول اكثر وروابط اكثر كان الاستعلام اكثر تعقيدا واكثر بطئ ايضا
اما في تصميمنا هذا فنحن نتحدث عن جدول واحد فقط يعني السرعة ستكون موجودة حتى مع قاعدة بيانات اكسس
غالبا التصميم عندما يكون خاطئ يأتي بالكثير من المشاكل .
جرب هذا على قاعدة بيانات اكسس ولاحظ بنفسك
طبعا مليون فاتورة كمية كبيرة لا اعتقد ان هناك محل او مركز مبيعات له هذه الكمية وعلى العموم هذه افضل طريقة لتفادئ البطئ
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو , sendbad100 , awidan76 , vbtemp
#23
السلام عليكم

صح الله بدنك عزيزي/ ابا همام

انا استخدم  فعلياً  فاتورة لعمل التالف  وعمل الجرد   ولكن باسم اخر  يبدو انها  طرية جيده فعلاً

إقتباس :بالنسبة لبضاعة اول المدة انا استخدم فاتورة كذلك 
ولكن في بالي فكرة اخرى 

وهي كالتالي : نضع عمود بجوار الصنف  نضع فيه كمية اول المدة اثناء حفظ الصنف. مع السماح بتعديلة.

وضع زر اقفال  بضاعة اول المدة  بعد الانتهاء من اضافه الاصناف والكميات (اقصد كميات اول الفترة)

يضغط المستخدم على الزر   يقوم باضافة الاصناف كما لو انها فاتورة في جدولنا جسم الفاتورة  مع الكميات.
ويقفل تعديل اصناف اول المدة 

ثم يقوم بعمل قيد ببضاعة اول المدة 

بالنسبة لتجربتي على مليون صف   فهي منطقية في السوبر ماركات  والتخفيضات  ومليون صف لا يعني مليون فاتورة قد تحتوي الفاتورة على  صف  او 5 او 10 اصناف   (عندي عميل يوصل 500000 صف  في السنة ) صف او صنف وليس فاتورة .
الرد }}}
تم الشكر بواسطة: asemshahen5 , viv , ابراهيم ايبو , awidan76 , awidan76 , vbtemp
#24
وعليكم السلام ورحمة الله

تسلم الله يحفظك ويفتح عليك

إقتباس :انا استخدم  فعلياً  فاتورة لعمل التالف  وعمل الجرد   ولكن باسم اخر

كل الخيارات مطروحة

إقتباس :يضغط المستخدم على الزر   يقوم باضافة الاصناف كما لو انها فاتورة في جدولنا جسم الفاتورة  مع الكميات

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

إقتباس :ومليون صف لا يعني مليون فاتورة

اذا نحن قريبان جدا من بعضنا لانني جربتها على حوالي 100 الف فاتورة وهي تعمل بسهولة وبدون اي بطئ فلو افترضنا ان متوسط كل فاتورة 5 اصناف فهذا يعني نصف مليون صف
وهو رقم كبير كان غير مرجح عندي

إقتباس :عندي عميل يوصل 500000 صف  في السنة

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







الرد }}}
تم الشكر بواسطة: sendbad100 , asemshahen5 , viv , vbtemp , vbtemp
#26
الله يبارك في حياتك العملية اخ ابراهيم ويفتح عليك
والحمد لله ان اسلوبي مفهوم

قمت بتعبئة قاعدة بيانات فصار حجمها كبير اكثر من 15 ميغا لحوالي 700 الف صف .
لهذا سوف ارفق برنامج صغير شغلوه وسوف يقوم بتعبئتها عندكم
احذركم لن يمر الامر بسهولة لقد شغلته على نصف مليون سجل وذهبت وصليت العشاء وجلست مع الاطفال قليلا وتناولت قطعة بطيخ من الثلاجة ولففت في المنزل قليلا ووجدته وصل الى 370 الف تقريبا

كما لا اعرف مدى قدرة اجهزتكم انا جهازي جيد جدا وسوف يستهلك بعض موارد جهازكم في الاضافة

   

لم اشاء ان اجعله يعمل بشكل اعلى وتركت Normal حتى يتسنى لكم العمل والتصفح 

شغلوا البرنامج 

   

تم حددوا عدد السجلات من الى From والى To تم انقروا على InsertData فوق الزر رقم سيبداء في الزيادة حتى يصل الى العدد المطلوب
اقصى عدد جعلته نصف مليون يمكنكم الزيادة فوق هذا العدد اذا شئتهم بعد اضافة النصف مليون الاولى

تحت حيث السهم الاخظر جملة الاستعلام المطلوبة هي مرتبطة بزر sum فقط للتغيير فيها حسب الطلب
بعد الانتهاء من ادخال البيانات حيث يشير السهم البنفسجي اكتب اي حروف بالانجليزية حيث الاصناف اضفتها كحروف انجليزية عشوائية تم انقر الزر Sum لتظهر النتيجة في الحقل Result حيث يشير السهم الازرق وحيث يشير السهم الازرق الثاني فوق

وهذه نتيجة الزر Sum

   
نتيجة الصنف K بعد خصم الوارد والصادر 


باقي الازرار غير مرتبطة بجملة الاستعلام وان كانت نفسها 
والزر Sum all سيقوم بحساب مجموع كامل الصنف في قاعدة البيانات لا يحتاج الى كتابة اسم الصنف
والزر Count سيحسب عدد الصنف الذي حددته في قاعدة البيانات
والزر count all سيحسب عدد كامل الاصناف في قاعدة البيانات  لا يحتاج الى كتابة اسم الصنف
النتيجة على حوالي 700 الف صف كانت جيدة جدا ويمكنكم التجربة بانفسكم واكيد على قاعدة بيانات غير اكسس ستكون اسرع بكثير
   


لتحميل البرنامج


.rar   Project1.rar (الحجم : 3.17 م ب / التحميلات : 36)

لتحميل قاعدة البيانات


.rar   db.rar (الحجم : 8.41 ك ب / التحميلات : 16)

ضعهم في مجلد واحد وشغل
الرد }}}
تم الشكر بواسطة: asemshahen5 , sendbad100 , ابراهيم ايبو , awidan76
#27
السالام عليكم

قمت بتجربة  الفكرة على  مليون سجل  على جهازي القديم   كان يحتاج الى حوالي  2 ثانية ليجلب اجمالي كمية الصنف المطلوب

في حال تم طلب كل الاصناف مع كمياتها قد يتاخر.

او مثلا  مجموعة معينة  مثل الالبان او غيرها .

من وجه نظري

هذا يعني ان الطريقة فعالة للمحلات المتوسطة والصغيرة  بشكل ممتاز  اما  الكبيرة بشرط الالتزام بالترحيل السنوي للكميات.

 (لاننا جربناه على كمية كبيرة من الاصناف قد لا تصل لها اي مؤسسة في الواقع )

والطريقة هذه تعطيك الكمية مضبوطة 100%  لانك تتخلص من مشاكل ترحيل الكميات من كل الفواتير. 
وتحذف وتعدل براحتك دون خوف من مشاكل المخزون.

ماذا استنتجت  اخي / ابا همام 
او الاخوة الذي جربوا 

(استخدمت البرنامج المرفق  في المشاركة السابقة للاخ / لابو همام محمد)
الرد }}}
تم الشكر بواسطة: asemshahen5 , viv
#28
وعليكم السلام ورحمة الله


إقتباس :[b]قمت بتجربة  الفكرة على  مليون سجل  على جهازي القديم[/b]


لاحظ انه قديم ، انا عندما اركب منظومة لزبون اؤكد له ان يجلب جهاز بمواصفات جيدة 

إقتباس :وتحذف وتعدل براحتك دون خوف من مشاكل المخزون

هذا هو المطلوب ، وهذا لان التصميم صحيح .

إقتباس :ماذا استنتجت  اخي / ابا همام 


على جهازي معالح I7 وذاكرة DDRAM3 بحجم 8 جيجا وقرص SSD لم اللاحظ اي تأخير الا عندما اشفل البرنامج لاول مرة
وعند النقر على زر Sum لاول مرة اشغر ان هناك عكة صغيرة لاجزاء اجزاء من الثانية وبعدها تختفي وغير موجودة
وبعدها النتيجة تأتي لحظياً لم اشعر بأي يطئ .

ثانيتين ارى انها ثقيلة ووقت طويل .
والترحيل امر لابد منه بكل الاحوال .

لاتنسى ايضا نحن لم نجرب النتيجة على قواعد بيانات اخرى حتى الان لنرى الفرق
قواعد بيانات اكسس يقولون دائما انها تأتي باخر القائمة من حيث السرعة
واحيانا لا تكون في القائمة ابدا وهي ليست مصممة لهذا النوع من الاعمال الثقيلة
الرد }}}
تم الشكر بواسطة: sendbad100 , asemshahen5 , vbtemp
#29
تمام / اخي ابو همام 
 الان تجاوزنا هذه النقطة بايجابية (نجحت الفكرة-- بشرط الترحيل كل سنة للمحلات الكبيرة )

حتى انا عند تجربته على جهازي الجديد  كانت النتيجة ممتازة
الرد }}}
تم الشكر بواسطة: asemshahen5 , viv , viv , عبد العزيز البسكري
#30
اذا الان تنفيذ التصميم على فايربيرد الجداول والاستعلامات المطلوبة

هنا تجدون كيفية تصميم جدول رأس الفاتورة

كود :
http://www.mediafire.com/file/jopoiska03mhjy8/Head.rar/file

الدرس الثاني جاهز ولكن يحتاج ان اضيف له التعليقات ، سوف نرفع التصميم بشكل اجزاء متتالية وكل درس يتبع الذي سبقه
الرد }}}
تم الشكر بواسطة: sendbad100 , asemshahen5 , عبد العزيز البسكري



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم