ஹைபர்னேட் தலைப்பில் இரண்டாவது திட்டத்தை முடிப்பதே இன்று எங்கள் பணி. அதன் சாராம்சம், தரவுத்தளத்தின் கட்டமைப்பைப் புரிந்துகொள்வது, ஏற்கனவே உள்ள அட்டவணையில் நிறுவனத்தை வரைபடமாக்குவது மற்றும் மேப்பிங் சரியாகச் செய்யப்பட்டுள்ளதா என்பதைச் சரிபார்க்க குறைந்தபட்ச செயல்பாட்டைச் சேர்ப்பது.

இப்போது இன்னும் விரிவாக:

  1. டம்ப் கோப்பைப் பதிவிறக்கி , அதை உங்கள் உள்ளூர் கணினியில் பயன்படுத்தவும். ஒரு தரவுத்தளமாக, நாங்கள் சோதனை தரவுத்தளத்தைப் பயன்படுத்துவோம், இது MySQL நிறுவல் தொகுப்புடன் எடுத்துக்காட்டாக விநியோகிக்கப்படுகிறது. தரவுத்தளத்தின் நிலையை சரிசெய்வதற்கு டம்ப் தேவைப்படுகிறது, ஏனெனில் அது ஒரு நாள், மாதம், வருடத்தில் மாறாது என்று உத்தரவாதம் அளிக்க முடியாது.
  2. எங்களிடம் திட்ட டெம்ப்ளேட் இருக்காது, எனவே திட்டத்தை நீங்களே உருவாக்குங்கள். இது தேவையான அனைத்து சார்புகளுடன் கூடிய மேவன் திட்டமாக இருக்க வேண்டும் ( hibernate-core-jakarta , mysql-connector-java , p6spy ).
  3. ஐடியாவில் தரவுமூலமாக எங்கள் உள்ளூர் வரிசைப்படுத்தப்பட்ட தரவுத்தளத்தை இணைக்கவும். அதன் பிறகு, டேட்டாபேஸ் தாவலில், மூவி ஸ்கீமாவில் கர்சரை வைத்து, விசை கலவையை அழுத்தவும் Alt+Ctrl+Shift+U(அல்டிமேட் பதிப்பில் மட்டுமே வேலை செய்கிறது). இது முழு மூவி ஸ்கீமாவின் கட்டமைப்பையும் (நெடுவரிசைப் பெயர்கள், விசைகள் போன்றவற்றுடன்) காண்பிக்கும். இது போல் தெரிகிறது:

    நான் ஒப்புக்கொள்கிறேன், பார்க்க மிகவும் வசதியாக இல்லை. அனைத்து நெடுவரிசைகள் மற்றும் கருத்துகளின் தலைப்பின் காட்சியை அணைக்கவும்:

    இதன் விளைவாக, நீங்கள் ஏற்கனவே பகுப்பாய்வு செய்யக்கூடிய தரவுத்தள திட்டத்தைப் பெறுவீர்கள்:

  4. சுற்று சிக்கலானதாக தோன்றுகிறது, ஆனால் எல்லாம் மிகவும் மோசமாக இல்லை. தரவுத்தளத்தின் கட்டமைப்பை பகுப்பாய்வு செய்ய, எங்கு தொடங்குவது என்பதை நீங்கள் கண்டுபிடிக்க வேண்டும். சரியான பதில் எதுவும் இல்லை, ஆனால் அட்டவணையில் தொடங்க பரிந்துரைக்கிறேன் film. உதாரணமாக சில உறவுகளை எடுத்துக் கொள்வோம்:
    • அட்டவணைகளுக்கு இடையிலான உறவு filmமற்றும் film_textவெளிப்படையான OneToOne உறவு , ஏனெனில் அட்டவணையில் film_textஒரு புலம் film_idஉள்ளதுஇல்லைஅட்டவணையில் இருந்து ஒரு ஐடியைக் குறிக்கிறது film(வெளிநாட்டு விசை இல்லை). ஆனால் பெயர் மற்றும் தர்க்கம் மூலம், இந்த இணைப்பு இருக்க வேண்டும். கூடுதலாக, அட்டவணையில், film_textபுலம் film_idஒரு முதன்மை விசையாக செயல்படுகிறது, இது ஒரு "திரைப்படம்" ஒன்றுக்கு மேற்பட்ட "திரைப்பட உரைக்கு" பொருந்தாது என்று உத்தரவாதம் அளிக்கிறது.
    • இப்போது அட்டவணைகள் filmமற்றும் category. தர்க்கரீதியாக, ஒரு திரைப்படம் பல வகைகளைக் கொண்டிருக்கலாம். மற்றும் ஒரு வகை, ஒருவேளை வெவ்வேறு படங்கள். கூடுதலாக, இந்த இரண்டு அட்டவணைகளுக்கு இடையே ஒரு இடைநிலை இணைப்பு அட்டவணை உள்ளது film_category. மேலே உள்ள எல்லாவற்றின் அடிப்படையில், இது ஒரு வெளிப்படையான பலருக்கு உறவு .
    • நாங்கள் அட்டவணைகளைப் பார்க்கிறோம் filmமற்றும் language. தர்க்கத்தின் பார்வையில், படம் வெவ்வேறு மொழிகளில் மொழிபெயர்க்கப்பட்டிருக்கலாம் மற்றும் வெவ்வேறு படங்கள் ஒரே மொழியில் இருக்கலாம். அதாவது, ManyToMany தன்னைத்தானே பரிந்துரைக்கிறது . ஆனால் அட்டவணையின் உள்ளடக்கங்களைப் பார்த்தால் film, அட்டவணையின் ஒவ்வொரு வரிசையும் ஒரு தனித்துவமான திரைப்படமாக இருப்பதைக் காணலாம். மேலும் வரியில் ஒரே ஒரு மொழி_ஐடி புலம் மட்டுமே உள்ளது (ஒரிஜினல்_லாங்குவேஜ்_ஐடியும் உள்ளது, ஆனால் எல்லா பதிவுகளிலும் அது பூஜ்யமாக உள்ளது, எனவே நாம் அதை புறக்கணிக்கலாம்). அதாவது, ஒரு படத்திற்கு ஒரே மொழி மட்டுமே இருக்க முடியும். மேலும் ஒரு மொழி, வேறு படங்கள் இருக்கலாம். இணைப்பு பல டூஒன் (இணைப்பு திரைப்படத்திலிருந்து மொழிக்கு இயக்கப்படுகிறது).
  5. இப்போது முக்கிய பணி, தேவையான அனைத்து நிறுவன வகுப்புகளையும் உருவாக்கி அவற்றை ஸ்கீமா அட்டவணையில் வரைபடமாக்குவதாகும் movie.
  6. அனைத்து சார்ந்த துறைகளிலும் புதிய வாடிக்கையாளரை (வாடிக்கையாளர் அட்டவணை) உருவாக்கக்கூடிய முறையைச் சேர்க்கவும். முறையை பரிவர்த்தனை செய்ய மறக்காதீர்கள் (வாங்குபவரின் முகவரி தரவுத்தளத்தில் பதிவு செய்யப்பட்டுள்ளது, ஆனால் வாங்குபவர் தானே இல்லை என்ற சூழ்நிலைக்கு வரக்கூடாது).
  7. "வாடிக்கையாளர் சென்று, முன்பு வாடகைக்கு எடுத்த திரைப்படத்தைத் திருப்பி அனுப்பினார்" நிகழ்வை விவரிக்கும் பரிவர்த்தனை முறையைச் சேர்க்கவும். உங்கள் விருப்பப்படி எந்த வாங்குபவர் மற்றும் வாடகை நிகழ்வைத் தேர்வு செய்யவும். படத்தின் மதிப்பீட்டை மீண்டும் கணக்கிட வேண்டியதில்லை.
  8. நிகழ்வை விவரிக்கும் ஒரு பரிவர்த்தனை முறையைச் சேர்க்கவும் “வாங்குபவர் கடைக்கு (கடை) சென்று அங்கு வாடகைக்கு (வாடகை) சரக்குகளை (சரக்கு) எடுத்தார். அதே நேரத்தில், அவர் விற்பனையாளருக்கு (ஊழியர்கள்) பணம் செலுத்தினார். திரைப்படம் (சரக்கு மூலம்) உங்கள் விருப்பப்படி தேர்வு செய்யவும். படம் வாடகைக்குக் கிடைக்க வேண்டும் என்பது மட்டும் கட்டுப்பாடு. அதாவது, வாடகையில் சரக்கு பதிவுகள் எதுவும் இருக்கக்கூடாது அல்லது இந்த சரக்குகளின் கடைசி வாடகைக்கான டேபிளின் ரிட்டர்ன்_டேட்rental நெடுவரிசை நிரப்பப்பட வேண்டும்.
  9. "புதிய திரைப்படம் எடுக்கப்பட்டது, அது வாடகைக்குக் கிடைத்தது" நிகழ்வை விவரிக்கும் பரிவர்த்தனை முறையைச் சேர்க்கவும். திரைப்படம், மொழி, நடிகர்கள், பிரிவுகள் போன்றவற்றை உங்கள் விருப்பப்படி தேர்வு செய்யவும்.
  10. அட்டவணை அமைப்பை மாற்ற முடியாது. ஆனால் முன்னேற்றத்திற்கான பரிந்துரைகளை நீங்கள் செய்ய வேண்டும். பத்தி 4 இல் ஒரு பிரச்சனைக்குரிய இடத்தைக் கண்டறிந்தோம் ( அட்டவணை புலத்தில் உள்ள அட்டவணையில் வெளிநாட்டு விசை இல்லாதது ). தரவுத்தள அமைப்பில் இதுபோன்ற "பிழைகள்" இன்னும் இருக்கிறதா என்று பார்க்கவும். அப்படியானால், திட்டத்தின் மூலத்தில் ஒரு readme கோப்பைச் சேர்த்து, இந்த தவறுகளை விவரிக்கவும்.film_textfilm_idfilm

திட்ட பகுப்பாய்வு: