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

سؤال بخصوص تعبئة الجداول في SQL

مغلق
بدأه وردةنجد& في 11 أبريل 2006 · 5 رد · 845 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إذا كان عندي جدول 1_وجدول 2

وجدول 2 فيه مفتاح fkأجنبي من جدول 1

السؤال؟

لما أجي أعبي عامود المفتاح الأجنبي في جدول 2 اعبية نفس القيم بجدول 1؟

سؤال 2؟

أنا عندي جدولين عبيتهم بعشر سجلات ومضبوطين؟

ولكن إذا نفذت أي استعلام يتنفذ ولاكــــــــــــــــــــــن(القيم تتكرر إلى 100)مع اني متاكدة من صحة بياناتي بليز إلي يعرف السبب يخبرني؟

:(

#2
اقتباس
لما أجي أعبي عامود المفتاح الأجنبي في جدول 2 اعبية نفس القيم بجدول 1؟

أكيد طبعا

اقتباس
ولكن إذا نفذت أي استعلام يتنفذ ولاكــــــــــــــــــــــن(القيم تتكرر إلى 100)

كيف ربطت بين الجدولين في الاستعلام؟

تحدث هذه الحالة عندما يكون Joining بين الجداول غير صحيح فيؤدي إلى مايشبه الcross join

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

فكر بطريقة أخرى

#3

لازم تكوني دارسة ماذا يعني المفتاح الأساسي و المفتاح الأجنبي

PK = Not Null + Unique

FK = PK Or NULL

المفتاح الأساسي و ظيفته تمييز جميع أبناء الكيان عن بعضهم البعض

و بالتالي لا يكون خالي و يكون وحيد

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

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

بالنسبة للربط

يجب عليكي استخدام الربط المتساوي

Equal Join

و يجب الأخذ بعين الإعتبار إيجاد رابط بين الجدولين

المراد الإستعلام منهما

سلام

#4

السلام عليكم ارفق حللي وارجو الاطلاع عليه:

ملاحظة عندما ربطت بين الجداول تم الربط بدون اخطاء؟

جدوال المساجد(1)

create table mosque (
mosque_id char(3) not null,
mosque_name varchar(20) not null,
mosque_kind varchar(20) not null,
cite varchar(15),
center varchar(20),
street varchar(20),
constraint pk_mosque primary key (mosque_id)
);

جدول الموظفين(2)

create table emp(
emp_id char(6)not null,
emp_name varchar(15) not null,
mosque_name varchar(20)not null,
jop varchar(20),
date_of_birth varchar(15),
date_working varchar(15),
phone_id char(10),
zip_code char(20),
mosque_id char(3) not null,
constraint pk_emp primary key (emp_id),
constraint emp_mosq foreign key (mosque_id)references mosque(mosque_id)
);

جدول الشهادات(3)

create table cerfifation(
cerfifation_id char(15)not null ,
emp_id char(6)not null,
mosque_id char(3) not null,
data_visit varchar(10),
visit_id varchar(10),
report varchar(20) not null,
constraint pk_cerf primary key (cerfifation_id),
constraint cerf_emp foreign key (emp_id)references emp (emp_id),
constraint cerf_mosq foreign key (mosque_id)references mosque(mosque_id)
);

جدول الأعضاء(4)

create table member(
member_id char(3) not null,
member_name varchar(15) not null,
jop varchar(20) not null,
constraint pk_memb primary key (member_id)
);

والأخير جدول الــتقيم (لا يحتوي على مفتاح أساسي)

create table evaluation(
emp_id char(6)not null,
evaluation varchar(20)not null,
commission varchar(20)not null,
member_id char(3)not null,
constraint FK_eval_emp Foreign key (emp_id) REFERENCES emp (emp_id),
constraint FK_eval_memb Foreign key (member_id) REFERENCES member(member_id)
);

هذه الجداول هل أرفق التعبئة والاستعلامات للإطلاع عليها؟؟ أرجو الاطلاع على الربط مع إني نفذت الجداول بالترتيب وطلعت صح بس بعد ماعبيتهم إذا سويت أي استعلام تتكرر القيم :wacko:

وشكرا جزيلا لكم.. :^)

تم تعديل هذه المشاركة بواسطة walcom في 11 أبريل 2006 في 13:12

#5

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

Server: Msg 547, Level 16, State 1, Line 1

INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_eval_emp'. The conflict occurred in database 'قاعدة بيانات المساجدومنسوبيها', table 'emp', column 'emp_id'.The statement has been terminated.

:rolleyes:

تم تعديل هذه المشاركة بواسطة walcom في 11 أبريل 2006 في 13:13

#6

ممكن تذكري توصيف الجداول

أنا أتوقع أنه في خطأ و يمكن أن يكون القيمة التي تحاول ادخالها

غير موجودة في جدول الموظفين

سلام

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

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