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

سؤال عن العلاقات في ال sql

بدأه hadi2005 في 28 يونيو 2011 · 10 رد · 968 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف حالكم شباب ؟

اليوم عندي مشكلة في العلاقات في ال SQL كالتالي :

انا عندي جدول اسمه Customers

فيه مجموعة من الحقول احدها هو ال Customer Name وهو المفتاح الرئيسي .

عندي مجموعة جداول كالتالي :

Sales Orders

PO

SAMPLES

SRETURENS

وجميعها تحتوي على عمود اسمه Cutomser_Name

الآن من المفترض ان ال Customer_Name هو عبارة عن مفتاح أجنبي والمفتاح الرئيسي موجود في جدول ال Customer

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

عند عمل اول علاقة بين احد الجدوال السابقة وجدول ال customer وطبعاً اختار Cascade للعلاقة . لا تحدث أي مشكلة د

ولكن .............

عند عمل اي علاقة ثانية بين احد الجداول وجدول ال customer واختيار cascade يعطي الخطأ التالي :

- Unable to create relationship 'FK_Sales_Order_Customer'.

Introducing FOREIGN KEY constraint 'FK_Sales_Order_Customer' on table 'Sales_Order' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

Could not create constraint. See previous errors.

طبعاً من المهم جداً ان تكون العلاقة cascade لأنه من المحتمل تغيير اسم اي زبون وبالتالي يجب ان تتعدل في باقي الجداول !!!!! :( :(

إن شاء الله الاقي الحل عندكم بأسرع وقت ممكن

وتقبلوا خالص تحياتي

hadi

#2

عند عمل العلاقة اعمل كما في الصورة

post-126189-005756900 1309294062_thumb.p

المرفقات
Capture.PNG

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#3

انا مسوي نفس الصورة أساساً

بس يعطي نفس الخطاً

أية حلول ؟!

#4

طيب اتاكد ان الحقل الاجنبي اللي في جدول الsales لايحتوي قيم لاتوجد في الحقل الرئيسي في جدول الcustomers و بيانات حقل الاجنبي غير مكررة

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#5

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

اخي تأكد من العلاقة غير مغلقة لأن ال Cascade لا يمكن ان يكون في هذا النوع من العلاقات, واقصد بالمغلقة الجدول الاول مرتبط بالثاني 1 - M والثاني مرتبط مع الثالث 1 - M والثالث مرتبط 1 - M فهنا تحذث المشكلة لأن لو كان الحذف متسلسل فاذا تم حذف المفتاح الاساسي في الجدول الاول ستنحذف المفاتيح الغريبه في الجول الثاني وبدورها في الجدول الثالث ونفس الحال ستعود مره اخرى في الاول؟!! يعني كل جدول يحذف المرتبط به الى ان تعود للجدول الاساسي

.:: Wish to become better and better ::.

#6

أخي الكريم VB Helper

حاولت كثيراً البحث عن مثل هذه العلاقات ولكن لم أجد

حذفت جيمع العلاقات المرتبطة مع Customers وانشأ علاقة وجيدة مع جدول ال Samples ، بعد إنشاء العلاقة الثانية مع جدول ال Sales Orders تنشأ المشكلة

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

وتقبل خالص تحياتي واحترامي

أخي الكريم medo_Programming

لا توجد بيانات موجودة في ال sales وغير موجودة في ال Customers

اما عن تكرار البيانات في جدول ال sales فهذا امر طبيعي حيث ان العلاقة 1-M

وتقبل خالص تحياتي

#7

ممكن تجيب لنا صورة للجداول بهذا الشكل من الdiagram

post-126189-039098200 1309349914_thumb.p

المرفقات
Capture.PNG

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#8

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

اخي يمكنك اظهار العلاقات من Database Diagrams, ممكن ترفق قاعدة البيانات

.:: Wish to become better and better ::.

#9

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

بالفعل ، بعد اظهار ال diagram وجدت علاقة مغلقة ...

ولكن ..

من شبه المستحيل تفادي هذه العلاقة

قاعدة البيانات موجودة على الرابط التالي :

www.houseofraysksa.info/Houseofrays2011.mdf

تم رفعها على سيرفري الخاص لكبر حجمها .

سأشرح القليل عنها :

يوجد جدول ال Trans وهو من اهم الجدوال وفيه تتم جميع العمليات بحيث :

1- يتم تخزين عناوين العمليات في جدوال مختلفة .

2-الكميات يتم كتابتها في جدول ال Trans مع اضافة رقم مرجعي للعملية .

كمثال :

لل sales order :

1- يتم تخزين عناوين ال sales order في جدول ال sales order مثل رقم ال sales وتاريخه و غيرها من العلومات

2-يتم اضافة سطر او اكثر في جدول ال trans بحيث يحتوي على رقم ال sales مع الكمية التي ستخرج

وهكذا بالنسبة لبقية العمليات .

فمن الصعب فك العلاقة المغلقة في هذه الحالة .

ارجو المساعدة

مع خالص تحياتي

#10

للرفع

#11

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

اخي ممكن توضح العلاقات بين الجداول - في العلاقة المغلقة - لكي نحاول التخلص منها!!

.:: Wish to become better and better ::.

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