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

الطريقة الصحيحة لربط ثلاثة جداول

بدأه محمد فؤاد تركي في 16 مارس 2008 · 6 رد · 982 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الزملاء

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

لقد انشئت ثلاثة جدوال علي برنامج SQL Server2005

عبارة عن الجدول الاول

الادارات

ويتكون من حقل ID وهو حقل تسلسل تلقائي ونوعة حقل رقمي وبه مفتاح اساسي

وحقل رقم الادارة

وحقل اسم الادارة

الجدول الثاني

الاقسام

ويتكون من

ويتكون من حقل ID وهو حقل تسلسل تلقائي ونوعة حقل رقمي وبه مفتاح اساسي

وحقل رقم القسم

وحقل اسم القسم

الجدول الثالث

جدول الموظفين

ويتكون من حقل ID وهو حقل تسلسل تلقائي ونوعة حقل رقمي وبه مفتاح اساسي

وحقل لرقم الموظف

وحقل لاسم الموظف

والمطلوب الطريقة الصحيحة لربط الجدوال الثلاثة بعضم ببعض

مرفق صورة لزيادة الايضاح

776976-1028.jpg

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

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

اخبارك يا أخ محمد

انا عندى طريقة بس مش متأكد منها

ممكن نعمل جدول نض فية (اسم الادارة - واسم القسم) ونربطة بجدول الموطفين

#3

أخي الغالي

Zeny

بارك الله فيك

لكن المطلوب عمل جدول لكل جزئية

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

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

Employees.rar

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 16 مارس 2008 في 15:03

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4

السلام عليكم

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

تضيف حقل sec_id as foreign key in departments table و تضيف حقل emp_id as foreign key in sections table .

أو مثلا :

تضيف جدول جديد يحتوي على ثلاثة حقول dept_id ,sec_id, emp_id ثم تربط الجداول الثلاث فيما بينها عبر هذا الجدول .

الذهب الخالص

#5

بارك الله فيك يا أخي الغالي بوحضرم

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

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

مفتاح اساسي لحقل Dep_id

مفتاح اساسي لحقل Sec_id

مفتاح اساسي لحقل emp_id

يا ريت لو امكن يتم تدعيم الكلام ده بمثال

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#6

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

ارى ان التصميم يكون كمايلي

الجدول الاول

deptid, deptname حيث لا ضرورة لوضع رقم تلقائي او استخدامه كرقم للدائرة

الجدول الثاني ( القسم يتبع لدائرة واحدة)

deptid,secID, secName

الجدول الثالث (الموظف يتبع لقسم واحد)

deptid,secID,empid,empname

هذا رأيي واعتقد هو رأيي الاخ بوحضرم

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

#7

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

اولا هذا مجرد رأى اخوك الصغير الفقير الى الله

ارى انة لافائدة من وجود التسلسل التلقائى وذلك بسبب ان الادارات الموجودة فى المؤسسة معلومة العدد وكذلك الاقسام والموظفين إلا إذا كانت لها فائدة انت لم تفصح عنها

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

Management Departement

1 m

1 1

---------------------------

1 m

Departement Employee

1 m

1 1

----------------------------

1 m

وبهذا يكون الكود كالاتى

create table management(

Mang_code int constraint pk_mang_code primary key,

Mang_name nvarchar(30));

---

create table departement (

Dep_code int constraint pk_Dep_code primary key,

Dep_name nvarchar(30),

Mang_code int constraint fk_Mang_code foreign key references management(Mang_code));

-----

create table Employee(

Emp_ID int constraint pk_Emp_ID primary key,

Emp_name nvarchar(30),

Dep_code int constraint fk_Dep_code foreign key references departement(Dep_code));

ارجوا ان تكون قد استفدت ولو باشئ القليل

هذا وإن كان من توفيق فمن الله وإن كان من عجز فمنى ومن الشيطان

اسألك الدعاء

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

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

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

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

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