الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أستطيع حل مشكلة وجود أكثر من مؤلف لنفس الكتاب

مغلق
بدأه المهنا في 20 أكتوبر 2006 · 30 رد · 2,626 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

7087e324c9.jpg

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

المشكلة هي في

أن وجود مربعات نص للمؤلفين كثيرة تضفي كثيرا من الرتابة والملل في التعامل مع البرنامج

حيث يتم اضافة المؤلفين من فورم اخر

المطلوب كيف أجعل للكتاب الواحد أكثر من مؤلف حيث أن عدد المؤلفين قد يصل الى 12 في بعض الكتب

رغم أن اسماء المؤلفين يقوم المستخدم بإختيارها فقط دون كتابتها

ولكن أين تحفظ وعدد الحقول تابتة وعدد المؤلفين متغيره

تم تعديل هذه المشاركة بواسطة المهنا في 20 أكتوبر 2006 في 03:42

#2

أعتقد والله أعلم أنك تحتاج إلى تعديل في تصميم قاعدة البيانات - إن كان برنامجك يعتمد على قاعدة بيانات - حيث تقوم بإنشاء جدول جديد يحتوي على أسماء المؤلفين وتنشأ علاقة [ واحد إلى متعدد ] بين الجدول الرئيسي للمكتبة وجدول المؤلفين .

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

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

42_47.gif
#4

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

اخي المهنا بالنسبة للفورم هناك طريقتين

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

أو

يمكنك وضع ListBox على الفورم وتقوم بوضع أسماء المؤلفين فيها

وبذلك تكون تخطيت مشكلة سرد أسماء المؤلفين على الفورم

-----------

أما بالنسبة لقاعدة البيانات :

فهناك احد حلين

اولا: اعتقد انه لا يوجد كتاب به 20 مؤلف :D ولذلك اذا كان عدد المؤلفين لديك ثابت فقم بعمل أعمدة بعدد أسماء المؤلفين

ولكن هذه الطريقة متعبة وطويلة

الحل الأخر ان تقوم باستخدام العلاقات بين الجداول

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

اولا في جدول حفظ البيانات قم بعمل حقل اسمه مثلا ID تسجل فيه رقم خاص لكل كتاب

ثم قم بتصميم جدول آخر به حقلين فقط هما ID and Author

وفي كل مرة تقوم بحفظ البيانات ستحفظ جميع البيانات في الجدول الأساسي ثم تفتح الجدول الاخر وتقم بتسجيل أسماء المؤلفين ورقم الكتاب وبذلك ستكون هناك علاقة بين الجدولين من خلال حقل الـ ID

وعند البحث ستقوم بفتح الجدولين والبحث عن طريق الـ ID

اعتقد ان هذه الطريقة أفضل كثيرا

لو رأيت انها مناسبة بالنسبة لك ولديك اي سؤال فاطرحه وستجد الحل ان شاء الله

بالتوفيق ومعذرة على الاطالة

============

الى اللقاء

JusT LeT YouR MinD WorK

#7

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

اخي المهنا الله يهديك ياريت تستغني عن الصور في شرح مشكلتك

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

ثم اذا كانت هناك مشكلة اخرى او ان المشكلة لم يتم حلها فقم بشرحها بتفصيل اكثر

اجعل الصور للاشياء التي يصعب وصفها بالكلام

وربنا يوفقك

بانتظار شرح افضل للمشكلة... وستجد الحل ان شاء الله

=======

الى اللقاء

JusT LeT YouR MinD WorK

#8
اقتباس
اخي المهنا الله يهديك ياريت تستغني عن الصور في شرح مشكلتك

لماذا ؟

قمت بعمل ما طلبت ووصلت الى نتيجة وهي

1- قمت بربط جدول المؤلف مهع جدول الكتب وسأكمل الباقي

ولكن المشكلة هي :

هل يقوم الفيجوال بالبحث عن المؤلف في الجدولين

كيف أستطيع أن أضع في جدول فلكس حقلين لجدولين مختلفين مع العلم أن البحث في تكست

وتظهر النتائج في الفلك حقل للكتاب من جدول وحقل للمؤلف منجدول آخر

أما الصور فرغم وجودها فما زال هناك مشكلة في الفهم

#9

اخي الكريم حسب فهمي للمسألة

فأني ارى قد استخدمت جدول خاص للمؤلفين (authorta) و هذا الكلام 100%

لكني ارى ان رقم ID يختلف عند كل كاتب و هذا خطأ

ففي جدول الكتاب رقم الـ ID سيكون مفتاح رئيسي (لا يسمح بتكراره في اي صف)

لكن في جدول الكاتب هذا الكلام غير صحيح فانت تقول ان الزمخشري و طه حسين و او و و هم شراكة في تأليف الكتاب رقم ID مثلا 007 فيجب ان يتكرر هذا الرقم

في جدول الكتاب امام هؤلاء المؤلفين

ويكون تجمع رقم 007 و الكاتب طه حسين معا هو المفتاح الرئيسي (و تسمى هذه التقنية بالمفتاح المركب ) (بحيث لا يمكن اضافة اسم الكاتب طه حسين مرة اخر ومعه الرقم 007 في جدول الكتاب فيكون هذا التكرار غير مستساغ)

و على فكرة يمكنك اضافة بدل ال 8 كتاب 1000

و تسمى هذه التقنية كاملة بالمفتاح الاجنبي حيث رقم 007 هو رئيسي في جدول الكتاب و اجنبي في جدول الكاتب

ارجو ان تكون وصلات ............... ;)

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

و السلام عليكم

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#11

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

قاعدة البيانات : ;)

اقتباس
تم إيجادالأخطاء التالية

فشلت عملية إرفاق الملف , غير مصرح لك بإرفاق هذا النوع من الملفات

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

لا ادري هل وضحت لفكرة ام لا ارجو ابلغي :lol:

post-77444-1161748361_thumb.jpg

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#12

شكرا لكم جميعا وكل عام وانتم بخير

وبالنسبه لك أخي Super_Pro

اقتباس
قم يضغط قاعدة البيانات بونرار أو ونزب وإرسالها لأني محتاج لها جدا وياليت تراعي هذا الشرح المبسط لما أريد

========================

أنا أحتاج التالي :

كيف أصحح العلاقات (علما ً أن معرفتي في العلاقات = 0%) في القاعدة بين ثلاثة جداول :

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

جدول لمؤلف الكتاب علما ً أن المؤلف الواحد قد يكون له عدة كتب

المشكلة عندي في

1- تصميم جدول الكتب حيث

أ- NO رقم التسلسل.

ب- BOOK اسم الكتاب.

ج- publisher الناشر.

د- edition الطبعة.

هـ - measure المقاس.

======================

1- تصميم جدول المؤلف حيث

أ- NO رقم التسلسل.

ب- AUTHOR اسم المؤلف

ج- childDATE تاريخ الولادة.

د- deathDATE تاريخ الوفاة

هـ - resume نبذة عن المؤلف.

=======================

أسئلة قبل العمل :

س1 : هل يمكن تمكين عملية البحث عن المؤلف ؟

س2 : هل يمكن طباعة تقرير يحوي المؤلف في عمود وكتبه في عمود آخر والعكس ؟

c9e332866a.jpg

س3 : هل علامة العلاقة تظهر في جدول الكتب أو المؤلف ؟

س4 : ما أقصى ما أستفيده من العلاقة في موضوعي هذا ؟ (تكرار اسم الكتاب لأكثر من مؤلف وتكرار المؤلف لأكثر من كتاب ؟)سأذهب إلى الأكسس ليوم وأعود لأتعلم العلاقات

ولكن أتمني منكم عمل مثال على العلاقات حيث أني لم أفهمها ودوختني لماذا ؟

تبغون الحقيقة أنا بنفسي ما أدري أيش عاوز تهت , واحترت والله حيرني بالذات العلاقات فأنا لا أعرف مدى فائدتها لى

#13

اخي الكريم المهنا

انتظر مني الشرح في اقرب فرصة

ان شاء الله تعالى :lol:

وهذه قاعدة البيانات

في المرفقات

super_pro.rar

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#14

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

إخواني.. أنا على خبرة جيدة في هذا الموضوع..

والطريقة الأمثل التي وصلت إليها هي:

احفظ كل أسماء المؤلفين في حقل واحد في قاعدة البيانات وضع بين كل اسم واتلآخر علامة فاصلة موحدة مثل:

محمد | أحمد | محمود

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

علماً أن الليست والكوموبو غير مريحتين في الإدخال ولذلك فإن العميل لن يحبهما وقد يطلب استبدالهما..

والحل:

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

وهذا يكون جميل جداً وقد نجح معي في vb.net ولكن في vb6 أتصور أنه جداً صعب!

والسلام

#15

شكر لك اخي الكريم

لكن اظن ان هذه الطريقة عقيمة في حاله البحث .... :)

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#17

اخي الكريم

طلبك ان شاء الله في قاعة البيانات هذه في المرفقات

اريد منك ما يلي :

1 افتح جمبع الجداول

2 انظر تصميم هذه الجداول

3 انظر العلاقات من خلال شاشة العلاقات (ادوات ====> علاقات)

4 انظر استعلام مؤلفين الكتاب

5 انظر استعلام كتب المؤلف

ورد لي جواب ....... ;)

المرفقات

super_pro_arabteam2000.rar

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#18

fe el database desgine be2olak en de 3elaket Many -> Many maben el ketab we el mo2laf ya3ni ya basha te5teser el mawdo3 we te3mel table teksar beh el realtion fe el nos

#19

الف شكر وصار عندنا ثلاثة جداول

جدول الربط بينهما

بس هل عند تصميم جملة SQL

هل ممكن عند الضغط على لستة المؤلف يظهر لي الكتب للمؤلف (وهذي سهلة وأنا عاملها وهي عملية الربط بينهما )

وعند الضغط على لستة الكتاب يظهر لى كل المؤلفين المشاركين في تأليف الكتاب سواء في لست ثالث أو في نفس اللست الاول للمؤلفين (وهذا في نظري هو سبب كل المشكلة وهو الصعب ولا يوجد له مثيل في كل المنتديات )

#20

اخي الكرم ان تمكنت في الفترة المقبلة سارفع لك مثال عن هذه الموضوع (ان وجدت الوقت)

و الا ساقدم لك خطوات الحل :: ;)

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#21

ألف شكر وخذ راحتك ولو نجحت العملية فسأوفر كثيرا من الحقول في قاعدة البيانات واستطيع القيام بعمل أكثر من 10جداول ولن احتاج لتكرار البيانات

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

#22

اخي المهنا

كيف الحال :lol: ؟؟

منذ فترة اريد ان اضع لك المثال ولكن متحير في امر *-)

الـ database التي قمت بارفاقها لك صنعتها بالـ Access 2000 وهي لا تعمل :s مع لـ vb

الا اذا كانت محدثة بالـ SP 2

بهدف وجود المكتبة DAO 3.6 التي تقوم بالتعامل مع هذا النوع من الـ data base (المصنوعة بالـ Access 2000)

فلا ادري هل قمت بتحديث نسختك من الـ vb6 ؟؟

و اظن ان اي شخص لم يقم بتحديث الـ Vb لديه لن يعمل المثال عنده :blink:

و الحل هنا اما انشاء data base بواسطة الـ Access 97

او اقوم بانشاء المثال على الوضع الذي هو عليه و الذي يريده يجب ان يقوم بتحديث نسخته من الـ VB

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

شوف المناسب فلا مشكلة عندي انا او انتا واحد (h) المهم هو الفائدة العامه و ان يسجل في ميزان حسناتنا B)

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#23
Super_Pro كتب:
و الحل هنا اما انشاء data base بواسطة الـ Access 97

يمكنك تحويل قاعدة البيانات إلى إصدار سابق بالتالي :

ادوات ==> أدوات مساعدة لقواعد البيانات ==> تحويل قاعدة بيانات ==> لتنسيق ملف Access 97

42_47.gif
#24

شكر لك اخ majed316

قد قمت بهذه الخطوة من قبل لكن تخوفت من كونها ستؤدي ال بعض المشاكل

و الله اعلم

فاذا كان عند تجربة بواسطة هذه الطريق و متأكد بانها لا تؤدي الى مشاكل 100 % ارجو اعلامي

لاني الصراحة لم اعتماد هذه الطريقة ولم ارتح لها.... :D

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…