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

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي الأخرى (https://delphi4arab.net/forum/forumdisplay.php?fid=4)
+--- قسم : برامج دلفي من عمل الأعضاء (https://delphi4arab.net/forum/forumdisplay.php?fid=27)
+--- الموضوع : تطبيق صغير لتسير مكتبة (/showthread.php?tid=2977)

الصفحات: 1 2 3


تطبيق صغير لتسير مكتبة - sidali12 - 01-05-2011

السلام عليكم



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

لديك جدول للمؤلفين و جدول للكتب في قاعدة بياناتك... في تطبيقك عندما تضيف كتاب تختار المؤلف صح ما الذي يحدث تقوم
بنسخ اسم المؤلف و تلصقه في جدول الكتب !! أي لو أضفت ثلاثة كتب تحت مؤلف مثلا "طه حسين" فان في قاعدة البيانات نجد 3
جمل في جدول المؤلفين هكذا :
طه حسين
طه حسين
طه حسين

و نجد نفس الجمل "نفس المؤلف" يتكرر في جدول الكتب

و هذا المشكل تكرار البيانات هو السبب الرئيسي الذي أدى إلى ظهور قواعد البيانات العلائقية التي لا مناص من تعلم أساسياتها..

ما الحل..؟؟
الحل وضعته لكن لم تستعمله وضعت في كل جدول مفتاح رئيسي...

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

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

لديك Author_ID مفتاح رئيسي في جدول المألفين تنشأ حقلا باسم Author_ID في جدول الكتب تكون خصائصه نفس خصائص الحقل في جدول المؤلفين و ليس شرط أن تتشابه أسامي الحقول و لكن يفضل ذلك ....
أي إذا كان Numérique في جدول المؤلفين يكونNumérique في جدول الكتب

للتوضيح أكثر سنقوم بذلك بالأكسس

جدول المؤلفين
Authors_Table
Author_ID NuméroAuto
Author_Name Texte
جدول الكتب
Books_Table
Book_ID NuméroAuto
Book_Name Texte
Author_ID Numérique

الآن لنضيف كتب و مؤلفين لنرى ماذا يحدث:
Author_ID Author_Name
طه حسين 1
المنفلوطي 2

الآن نريد إدخال كتاب




Book_ID Book_Title Author_ID
1 المعذبون في الأرض 1

لاحظ لم ندخل اسم المؤلف أدخنا فقط رقمه

الآن نريد إدخال كتاب آخر لنفس المؤلف "طه حسين" و ليكن جنة الحيوان


Book_ID Book_Title Author_ID
1 المعذبون في الأرض 1
1 جنة الحيوان 2

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

كود :
http://i1113.photobucket.com/albums/k518/sidali12/Sanstitre2.jpg

----------

كود :
http://i1113.photobucket.com/albums/k518/sidali12/Sanstitre.jpg


لتوضيح الاستعلام سنستخدم الأكسس في الأكسس أنشئ استعلاما تظهر فيه الحقول Book_Title و ال Author_Name فقط و ذلك عن طريق الذهاب الى
Créer>> Création de requete
أضف كلا الجدول اضغط مرتين على الحقلين Book_Titl و Author_Name نفذ الاستعلام Exécuter
نفذ الاستعلام نعم قام الأكسس بمعرفة مؤلف الكتابين كيف ذلك ببساطة يأخذ الأكسس من جدول الكتب رقم المألف ثم يذهب الى جدول المؤلفين يطابق و يأتينا بالنتائج ...

كما ترى استطاع الأكسس معرفة مؤلف كل كتاب ببساطة للاستغلال في الدلفي اختر Mode Sql انسخ الاستعلام و ضعه
مكون ADODataset ...

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

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



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


تطبيق صغير لتسير مكتبة - Anter2010 - 01-05-2011

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