• 0
hamada33n@yahoo.com

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

سؤال

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

كل عام و انتم بخير أخوتي الاعزاء،،،

 

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

المشكلة كالآتي:

 

لدي قاعدة بيانات المطلوب ان اسجل فيها بيانات المستأجرين:

المستأجرين ممكن يكونو:

1- أفراد

2- شركات

 

طبعا عملت جدول لكل واحد لأن البيانات الى هنجمعها لكل كيان بتختلف عن التاني باختصار كالآتي:

 

Persons

ID

Fname

Lname

Main_ID>>>>FK

 

CompaniesOrEstablishments

Id

Commercial_Name

Owner_Name

Main_ID>>>>FK

 

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

يمكن استغلال الجدول دة لجمع البيانات المشتركة بين الكيانين زي العنوان و رقم التليفون الاساسي.

 

Tenants

Main_ID

add_date

address

mobile

 

العلاقة المفروض تكون أن كل شركة أو فرد يلزم أن يتبع ريكورد واحد فقط في جدول المستأجرين (Tenants) و أن كل ريكورد في جدول المستأرجين يكون مسجل في واحد من الجدولين فقط (الافراد أو الشركات)،،،

 

المطلوب ازاي انفذ العلاقة دي على برنامج الاسكيوال سرفر؟؟؟؟

:)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

السلام عليكم 

 

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

 

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

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

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

 

اذا هذا ما تريده في الرد التالي سنري كيف يتم ذلك علي السكوال 

هذا علي ما فهمت منك وسامحني اذا ما قدرت افيدك 

 

تم تعديل بواسطه عبدالعزيز المخزنجي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم عبدالعزيز المخزنجي

شكرا جزيلا على ردك 

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

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

وبعدين أستخدم جمل الربط هذي:

select * from Tenants inner join Person on Tenants.TE_ID = Person.TE_ID where TenantsType = 'Person'

select * from Tenants inner join Company on Tenants.TE_ID = Company.TE_ID where TenantsType = 'Company'

 

الله يعين  :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا ليك يا استاذ/

ema2000_t

رد حضرتك وصلني لجزء كبير من الحل للمشكلة بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا لم افهم شيء بصراحة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .