النتائج 1 إلى 3 من 3

الموضوع: علاقة الكثير بكثير وطريقة عملها في قواعد البيانات

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    59

    علاقة الكثير بكثير وطريقة عملها في قواعد البيانات



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



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



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



    أنتهيت حاليا من توضيح النقطة الاساسية وألي الأغلبية يعرفها الحين راح ننتقل لتوضيح طريقة عمل العلاقة كثير بكثير وسأقوم بشرحها على أساس فكرة الهوايات .
    أول نقطة هي تكوين الجداول وهي ثلاث جداول :
    الجدول الاول بإسم (account) ويحتوي على الحقول التاية :
    معرف (ID) , أسم العضو (name)
    الجدول الثاني بإسم (hoppy) ويحتوي على الحقول التالية :
    معرف (ID) , أسم الهواية (hoppy)
    الجدول الثالث بإسم (linktable) ويحتوي على الحقول التالية :
    معرف (ID) , رقم معرف العضو (ID_account) , رقم معرف الهواية (ID_hoppy)
    وهذا استعلام الانشاء :
    كود:
    CREATE TABLE `account` (
    `ID` INT( 4 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    `name` VARCHAR( 30 ) NOT NULL ,
    PRIMARY KEY ( `ID` ) 
    ) TYPE = MYISAM ;
    CREATE TABLE `hoppy` (
    `ID` INT( 4 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    `hoppy` VARCHAR( 30 ) NOT NULL ,
    PRIMARY KEY ( `ID` ) 
    ) TYPE = MYISAM ;
    CREATE TABLE `linktable` (
    `ID` INT( 6 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    `ID_account` INT( 4 ) UNSIGNED NOT NULL ,
    `ID_hoppy` INT( 4 ) UNSIGNED NOT NULL ,
    PRIMARY KEY ( `ID` ) 
    ) TYPE = MYISAM ;
    الخطوة الثانية هي تحميل سيكريبت للتفاعل مع قاعة البيانات وهو عبارة عن خمس ملفات وقد قمت بإرفاقها في المرفقات .

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

    الآن سنبدا باتوضيح معنى علاقة كثير بكثير بشكل أكبر مع اضافة قاعدة من البيانات التي سنحتاجها في الشرح .
    ملاحضة : الرابط يجب تغيره بما يتناسب مع رابطك (http://yoursite/dir/) .
    أولا سنتجه للرابط http://yoursite/dir/addhoppy.php
    ونقوم بإضافة مجوعة من الهوايات بواسطة النموذج ويفضل أن تكون حقول إنجليزية ولنقول :
    programming , swimming , reading ,
    هنا نلاحض في هذا الملف أنه يتعامل مع جدول الهواية في قاعدة البيانات فقط نظرا لأن الهواية هي الاساس .

    بعد ذلك سنتجه للرابط http://yoursite/dir/addaccount.php
    سنلاحض هنا أن الهوايات التي أضفتها قد تم وضها هنا لتختار منها وهنا نبدأ في جانب العلاقة الآن
    دعنا نقوم بإضافة مجموعة من الاعضاء مع مراعاة أن تختار لكل عضو هوايتين أو أكثر ويفضل أن تكون حقول إنجليزية ولنقول :
    abdulelah , saud , omar , mansor

    الآن دعنا نذهب للرابط http://yoursite/dir/showaccount.php
    ستضهر لك هنا قائمة منسدلة تعرض الأعضاء اختر منها أي عضو ثم أضعط على اعرض ستلاحض ضهور اسم العضو وهواياته التي اخترتها له

    الآن اذهب إلى الرابط http://yoursite/dir/showhoppy.php
    ستضهر لك هنا قائمة منسدلة تعرض الهوايات اختر منها أي هواية ثم أضعط على اعرض ستلاحض ضهور اسم الهواية والأعضاء اللذين يهوون هذه الهواية .

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


    الآن لنعد إلى قاعدة البيانات ونشاهد شكل المعلومات فيها :
    أولا افتح الجدول account :
    ستلاحض أن الأعضاء تم إضافتهم لكن بدون أي تفاصيل أخرا إذا أين تفاصيل الهوايات الخاصة بالعضو إذا دعنى نذهب إلى الجدول hoppy سنلاحض هنا أن الجدول أيضا لا يحتوي إلا على الهوايات لكن لو ذهبنا للجدول linktable ستجد به مجموعة من سجلات كلها أرقام وهي عبارة عن الرابطة بين العضو وهواياته وطريقة عملها هي أنه عند إضافة عضو جديد مثلا بثلاث هوايات فإنه سيضاف في هذا الجدول ثلاث حقول يحتوي كل حقل على معرف العضو ومعرف الهواية التي اختارها وبهذه الطريقة نستطيع إسترجاع معلومات هوايات العضو أو معلومات الاعضاء الذين يهوون هواية معينة بسهولة حيث أننا لو أردنا قائمة بهوايت عضو معين فإننا سنبحث عن المعرفات المطابقة له في الحقل ID_account في الجدول linktable ونأخذ المعرفات التي تحمل رقم الهواية في الحقل ID_hoppy عنطريق الاستعلام التالي :
    كود:
    SELECT hoppy.hoppy FROM hoppy, linktable WHERE linktable.ID_account=number_account and hoppy.ID=linktable.ID_hoppy;
    حيث number_account يمثل معرف العضو

    ولو أردنا قائمة بالأعضاء الذين يحبون هواية معينة فإننا سنعكس الاستعلام السابق حيث أننا سنضع بدلا من الحقل hoppy.hoppy الحقل account.name وبدلا من الجدول hoppy الجدول account وبدلا من المقارنة linktable.ID_account=number_account المقارة linktable.ID_hoppy=number_hoppy والمقارة hoppy.ID=linktable.ID_hoppy المقارة account.ID=linktable.ID_account ليصبح الاستعلام النهائي :
    كود:
    SELECT account.name FROM account, linktable WHERE linktable.ID_hoppy=number_hoppy and account.ID=linktable.ID_account;
    حيث number_hoppy يمثل معرف الهواية

    أتمنى يكون الدرس مفيد وذا مردود على الأعضاء وإذا فيه اي خطأ أتمنى ماتبخلو علينا بالتوضيح





    الملفات المرفقة الملفات المرفقة
    __________________
    لطلب خدمة راسلني على البريد التالي :
    add-1st@hotmail.com


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    746


    جميل جداً ماشاء الله
    استفدت منها كثيراً ...






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    59


    بالتوفيق وشكرا على ردك الطيب





    __________________
    لطلب خدمة راسلني على البريد التالي :
    add-1st@hotmail.com





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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