delphi4arab منتديات دلفي للعرب
حصان طروادة في المفتاح الفريد - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : تمارين دلفي وحلول (https://delphi4arab.net/forum/forumdisplay.php?fid=16)
+--- الموضوع : حصان طروادة في المفتاح الفريد (/showthread.php?tid=11744)



حصان طروادة في المفتاح الفريد - Delphi4Us - 05-01-2022

السلام عليكم ورحمة الله


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

[صورة: attachment.php?aid=4578]

مثلا هذا الرقم 0000131008202109

اول خمس ارقام محجوزة لرقم الفاتورة 00001 
الرقم السادس 3 يمثل نوع الفاتورة او الحركة
بعدها تاريخ الفاتورة 10082021 = 10-08-2021
بعدها رقم المورد 09
وطبعا باجراء بسيط يمكن تفكيك الرقم واخراج محتواه 
وهكذا هناك الكثير من المعلومات تكون قريبة منك اذا احتجتها 

مجرد فكرة عابرة اردت مشاركتكم اياها


RE: حصان طروادة في المفتاح الفريد - wadoud - 05-01-2022

(05-01-2022, 12:48 PM)Delphi4Us كتب : السلام عليكم ورحمة الله


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

[صورة: attachment.php?aid=4578]

مثلا هذا الرقم 0000131008202109

اول خمس ارقام محجوزة لرقم الفاتورة 00001 
الرقم السادس 3 يمثل نوع الفاتورة او الحركة
بعدها تاريخ الفاتورة 10082021 = 10-08-2021
بعدها رقم المورد 09
وطبعا باجراء بسيط يمكن تفكيك الرقم واخراج محتواه 
وهكذا هناك الكثير من المعلومات تكون قريبة منك اذا احتجتها 

مجرد فكرة عابرة اردت مشاركتكم اياها

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


RE: حصان طروادة في المفتاح الفريد - Delphi4Us - 05-01-2022

الرقم لازال يقبل حتى سبعة ارقام اخرى بالتجربة

في مثال الفواتير كما قلت الحقل الفريد لجدول رأس الفاتورة سيكون مرتبط بحقل الفهرس بجدول الحركة


RE: حصان طروادة في المفتاح الفريد - wadoud - 05-01-2022

(05-01-2022, 08:18 PM)Delphi4Us كتب : الرقم لازال يقبل حتى سبعة ارقام اخرى بالتجربة

في مثال الفواتير كما قلت حقل الفهرس لجدول رأس الفاتورة سيكون بجدول الحركة

أراه عملا متقنا ،شكرا 

وفقكم الله.


RE: حصان طروادة في المفتاح الفريد - Delphi4Us - 05-01-2022

مع ملاحظة ان الحقل الفريد في العادة يستخدم من النوع INTEGER ويحجز 4 بايت اما الرقم هذا فيستخدم النوع BIGINTEGER او INT64 ويحجز 8 بايت


RE: حصان طروادة في المفتاح الفريد - Delphi4Us - 26-05-2022

السلام عليكم

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

[صورة: attachment.php?aid=4642]
لا يوجد جدول لرأس الفاتورة كله جدول واحد للمشتريات والمبيعات
في الاستعلامات كان قصير جدا واسهل في اجراء العمليات الحسابية واسرع في التنفيذ
هنا لدينا فاتورة متكاملة
BYE-DATE تاريخ الفاتورة طبعا تسجله مرة واحدة فقط لاداعي لتكراره
بعده رقم اصنف وبعده سعر الشراء او البيع وبعده كمية الشراء لو كانت مشتريات وبعده كمية البيع لو كانت مبيعات وبعده رقم الفاتورة وايضا  بعده تاريخ الصلاحية لو كانت مشتريات وبعده رقم نوع الفاتورة وهنا 9 اي مبيعات وبعده رقم المستخدم وبعده المدفوع وهو اجمالي الفاتورة ويجب ان يكون في اول السطر فقط لان هذا سيسهل فيما بعد الاستعلامات لانك لو جمعت باستعلام وكان امدفوع 100 ستكون النتيجة 300 وتحتاج الى انقاصه من عدد الصفوف واجراء عملية في الاستعلام ونحن نحتاج الى اقل وابسط استعلامات وبعدها التخفيظ في اول اسطر تخفيظ على كامل الفاتورة ولو بعده على الصنف الحدد فقط

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