आज आमचे कार्य हायबरनेट विषयावरील दुसरा प्रकल्प पूर्ण करणे आहे. डेटाबेसची रचना समजून घेणे, अस्तित्वातील सारण्यांवर अस्तित्वाचा नकाशा तयार करणे आणि मॅपिंग योग्यरित्या केले आहे हे तपासण्यासाठी किमान कार्यक्षमता जोडणे हे त्याचे सार आहे.
आता अधिक तपशीलवार:
- डंप फाइल डाउनलोड करा आणि ती तुमच्या स्थानिक मशीनवर तैनात करा. डेटाबेस म्हणून, आम्ही चाचणी डेटाबेस वापरू, जो MySQL इंस्टॉलेशन पॅकेजसह उदाहरण म्हणून वितरित केला जातो. डेटाबेसची स्थिती निश्चित करण्यासाठी डंप आवश्यक आहे, कारण ते एका दिवसात, महिन्यात, वर्षात बदलणार नाही याची आम्ही हमी देऊ शकत नाही.
- आमच्याकडे प्रकल्प टेम्पलेट नसेल, म्हणून प्रकल्प स्वतः तयार करा. हा सर्व आवश्यक अवलंबनांसह ( हायबरनेट-कोर-जकार्ता , mysql-connector-java , p6spy ) एक मावेन प्रकल्प असावा.
- आयडियामधील डेटास्रोत म्हणून आमचा स्थानिक उपयोजित डेटाबेस प्लग इन करा. त्यानंतर, डेटाबेस टॅबमध्ये, मूव्ही स्कीमावर कर्सर ठेवा आणि की संयोजन दाबा
Alt+Ctrl+Shift+U
(केवळ अंतिम आवृत्तीमध्ये कार्य करते). हे संपूर्ण मूव्ही स्कीमाची रचना दर्शवेल (स्तंभांची नावे, की इ. सह). असे दिसते:मी सहमत आहे, ते पाहणे फारसे सोयीचे नाही. सर्व स्तंभ आणि टिप्पण्यांच्या शीर्षकाचे प्रदर्शन बंद करा:
परिणामी, तुम्हाला डेटाबेस स्कीमा मिळेल ज्याचे आधीच विश्लेषण केले जाऊ शकते:
- सर्किट क्लिष्ट दिसते, परंतु सर्वकाही इतके वाईट नाही. डेटाबेसच्या संरचनेचे विश्लेषण करण्यासाठी, आपल्याला कोठे सुरू करायचे ते शोधणे आवश्यक आहे. कोणतेही एकच अचूक उत्तर नाही, परंतु मी टेबलसह प्रारंभ करण्याची शिफारस करतो
film
. उदाहरण म्हणून काही संबंध घेऊ.- सारण्यांमधील संबंध
film
आणिfilm_text
एक स्पष्ट OneToOne संबंध आहे , कारण टेबलमध्येfilm_text
फील्डfilm_id
आहेनाहीटेबलमधील आयडीचा संदर्भ देतेfilm
(कोणतीही परदेशी की नाही). पण नाव आणि तर्काने, हे कनेक्शन असावे. याव्यतिरिक्त, टेबलमध्ये,film_text
फील्डfilm_id
प्राथमिक की म्हणून कार्य करते, जे हमी देते की एक "चित्रपट" एकापेक्षा जास्त "फिल्म मजकूर" शी संबंधित नाही. - आता टेबल
film
आणिcategory
. तार्किकदृष्ट्या, चित्रपटात अनेक श्रेणी असू शकतात. आणि एक श्रेणी, कदाचित भिन्न चित्रपट. याव्यतिरिक्त, या दोन सारण्यांमध्ये एक इंटरमीडिएट लिंक टेबल आहेfilm_category
. वरील सर्व गोष्टींवर आधारित, हे एक स्पष्ट ManyToMany संबंध आहे . - आम्ही टेबल पाहतो
film
आणिlanguage
. तर्कशास्त्राच्या दृष्टिकोनातून, चित्रपटाचे विविध भाषांमध्ये भाषांतर असू शकते आणि भिन्न चित्रपट एकाच भाषेत असू शकतात. म्हणजे, ManyToMany स्वतःच सुचवतो . परंतु जर आपण सारणीतील सामग्री पाहिली तरfilm
आपण पाहू शकतो की टेबलची प्रत्येक पंक्ती एक अद्वितीय चित्रपट आहे. आणि ओळीत फक्त एक भाषा_आयडी फील्ड आहे (तेथे मूळ_भाषा_आयडी देखील आहे, परंतु सर्व रेकॉर्डमध्ये ते शून्य आहे, म्हणून आपण त्याकडे दुर्लक्ष करू शकतो). म्हणजेच एका चित्रपटात एकच भाषा असू शकते. आणि एक भाषा, कदाचित भिन्न चित्रपट. कनेक्शन ManyToOne आहे (कनेक्शन चित्रपटापासून भाषेत निर्देशित केले आहे).
- सारण्यांमधील संबंध
- आता मुख्य कार्य म्हणजे सर्व आवश्यक घटक वर्ग तयार करणे आणि त्यांना स्कीमा टेबलवर मॅप करणे
movie
. - सर्व अवलंबून फील्डसह नवीन ग्राहक (ग्राहक सारणी) तयार करू शकणारी पद्धत जोडा. पद्धत व्यवहार्य बनविण्यास विसरू नका (जेणेकरुन खरेदीदाराचा पत्ता डेटाबेसमध्ये रेकॉर्ड केला जातो, परंतु खरेदीदार स्वतः नाही अशा परिस्थितीत येऊ नये).
- "ग्राहक गेला आणि पूर्वी भाड्याने घेतलेला चित्रपट परत केला" इव्हेंटचे वर्णन करणारी एक व्यवहार पद्धत जोडा. तुमच्या आवडीचा कोणताही खरेदीदार आणि भाडे इव्हेंट निवडा. चित्रपटाचे रेटिंग पुन्हा मोजण्याची गरज नाही.
- इव्हेंटचे वर्णन करणारी व्यवहाराची पद्धत जोडा “खरेदीदार दुकानात (स्टोअर) गेला आणि तेथे भाड्याने (भाड्याने) इन्व्हेंटरी (इन्व्हेंटरी) दिली. त्याच वेळी, त्याने विक्रेत्याला (कर्मचारी) पेमेंट (पेमेंट) केले. चित्रपट (इन्व्हेंटरीद्वारे) आपल्या विवेकबुद्धीनुसार निवडा. चित्रपट भाड्याने मिळणे आवश्यक आहे हे एकच बंधन आहे. म्हणजेच, एकतर भाड्याने दिलेली कोणतीही इन्व्हेंटरी रेकॉर्ड नसावी किंवा या इन्व्हेंटरीच्या शेवटच्या भाड्यासाठी टेबलचा रिटर्न_डेट कॉलम भरला जावा.
rental
- इव्हेंटचे वर्णन करणारी एक व्यवहार पद्धत जोडा "नवीन चित्रपट शूट केला गेला आणि तो भाड्याने उपलब्ध झाला." चित्रपट, भाषा, कलाकार, श्रेण्या इ. तुमच्या विवेकबुद्धीनुसार निवडा.
- टेबलची रचना बदलली जाऊ शकत नाही. पण तुम्हाला सुधारणेसाठी सूचना करणे आवश्यक आहे. आम्ही परिच्छेद 4 मध्ये एक समस्याप्रधान ठिकाण ओळखले ( टेबल फील्डवरील टेबलमध्ये परदेशी की नसणे ). डेटाबेस स्ट्रक्चरमध्ये अजूनही अशा "ब्लंडर्स" आहेत का ते पहा. तसे असल्यास, प्रकल्पाच्या रूटमध्ये एक रीडमी फाइल जोडा आणि या त्रुटींचे वर्णन करा.
film_text
film_id
film
प्रकल्प विश्लेषण:
GO TO FULL VERSION