2013-12-11 6 views
6

में ईआर आरेख से संबंध गुणों का अनुवाद करना वर्तमान में पहली बार एसक्यूएल के साथ पकड़ने की कोशिश कर रहा है, इसलिए मैं कुछ समस्याओं के माध्यम से काम कर रहा हूं। यहां एक नमूना डेटाबेस spec है:एसआर

छात्र (नाम, लिंग, पाठ्यक्रम) परियोजनाएं (शीर्षक) करते हैं। प्रत्येक प्रोजेक्ट में दो पर्यवेक्षकों (नाम, लिंग, विभाग) हैं। सभी छात्र प्रोजेक्ट करते हैं लेकिन सभी परियोजनाएं नहीं ली जाती हैं। एक से अधिक छात्र एक ही प्रोजेक्ट कर सकते हैं। छात्र नियमित रूप से अपने पर्यवेक्षकों में से एक से मिलते हैं और इन मीटिंग्स दर्ज की जाती हैं (दिनांक, समय, छात्र, पर्यवेक्षक, नोट्स)।

अब तक मुझे मिल गया है एक ईआर आरेख तैयार की है जो मुझे लगता है कि सही है:

enter image description here

मैं मूल बातें प्राप्त कर सकते हैं (उदाहरण के लिए एक छात्र तालिका बनाने आदि), लेकिन मैं हो रही है संबंधों का प्रतिनिधित्व करने के तरीके, विशेष रूप से मीटिंग रिलेशनशिप, और इसका प्रतिनिधित्व कैसे करें और एसक्यूएल में इसके गुणों के बारे में मेरे सिर को प्राप्त करने में परेशानी। क्या मुझे इसके बजाय 'मीटिंग्स' इकाई बनाना चाहिए?

उत्तर

5

हां, आपको Meeting इकाई बनाना चाहिए ताकि Student और Supervisor के बीच कई रिश्तों का प्रतिनिधित्व किया जा सके। इसमें आप उन संबंधित तालिकाओं से मेल खाने वाली विदेशी कुंजी का उपयोग करके उन तालिकाओं से संबंधित हो सकते हैं। एसक्यूएल में यह कुछ इस तरह लग सकता है:

Create table Meeting { 
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
student_id INT NOT NULL, 
supervisor_id INT NOT NULL, 
//rest of the fields... 
FOREIGN KEY (student_id) REFERENCES Student(id) 
FOREIGN KEY (supervisor_id) REFERENCES Supervisor(id) 
} 

तुम भी Project और Supervisor के बीच Supervise के लिए एक ही बात करना होगा। इसके अलावा आप अपनी मीटिंग टेबल पर एक समग्र कुंजी नामक कुछ भी इस्तेमाल कर सकते हैं, मुझे लगता है कि यह व्यक्तिगत वरीयता के लिए नीचे आता है, मैं आमतौर पर कई रिश्तों को प्रस्तुत करते समय इसे इस तरह से करता हूं। मैं यह नहीं कह रहा हूं कि यह सिंटैक्स है जिसका आप उपयोग करेंगे, जो आपके डेटाबेस पर निर्भर करता है, यह आपको सही दिशा में इंगित करने के लिए एक उदाहरण था। आशा करता हूँ की ये काम करेगा।

इसके अलावा आपके चित्र के लिए (मुझे लगता है कि यह एक कक्षा के लिए है) आप अपने ईआर आरेख बनाने के लिए दृश्य या दृश्य प्रतिमान जैसे सॉफ़्टवेयर को देखना चाहेंगे। जबकि अधिकांश लोग आपके वर्तमान आरेख को समझ पाएंगे, यह सही मॉडलिंग नहीं है।

मस्ती के लिए मैं अपने तालिकाओं के आधार पर एक चित्र बनाया: enter image description here

आप Supervisor और Project के बीच एक इकाई चाहेगा अगर वे कई रिश्ते के लिए कई हैं। इसे associative entity कहा जाता है। मैंने अपना SupervisorProject लेबल किया है, इसलिए वे थोड़ा और स्पष्ट हैं।

संपादित करें इस तथ्य को नजरअंदाज किया कि छात्र और परियोजना एक के लिए कई थी, ठीक है, क्षमा करें।

+0

मैक या आईओएस के लिए सामान्य उद्देश्य ड्राइंग ऐप के लिए जो ईआरडी को संभाल सकता है, [OmniGraffle] (http://www.OmniGroup.com/omnigraffle/) देखें। –

+0

ग्रेट - क्या आप एक इकाई को 'पर्यवेक्षण' बनाने की योग्यता पर थोड़ा और विस्तार कर सकते हैं? – Cohagen

0

कोहेजन this stackoverflow post के जवाब में सुझाव दिया गया है कि Supervise जैसे कई रिश्तों को रिलेशनशिप टेबल को रखते हुए भी प्रदर्शित किया जा सकता है, भले ही इसमें कोई विशेषता न हो। इसके विपरीत Do तालिका कई से एक रिश्ते के बीच है और इसमें विशेषताएं नहीं हैं इसलिए हम इससे छुटकारा पा सकते हैं और छात्रों में प्रोजेक्ट टेबल के लिए एक विदेशी कुंजी संदर्भ जोड़ सकते हैं।

संबंधित मुद्दे