আজ আমাদের কাজ হল হাইবারনেট বিষয়ে দ্বিতীয় প্রকল্পটি সম্পূর্ণ করা। এর সারমর্ম হল ডাটাবেসের গঠন বোঝা, বিদ্যমান টেবিলে সত্তাকে ম্যাপ করা এবং ম্যাপিং সঠিকভাবে সম্পন্ন হয়েছে কিনা তা পরীক্ষা করার জন্য ন্যূনতম কার্যকারিতা যোগ করা।

এখন আরো বিস্তারিত:

  1. ডাম্প ফাইলটি ডাউনলোড করুন এবং এটি আপনার স্থানীয় মেশিনে স্থাপন করুন। একটি ডাটাবেস হিসাবে, আমরা একটি পরীক্ষা ডাটাবেস ব্যবহার করব, যা মাইএসকিউএল ইনস্টলেশন প্যাকেজের সাথে একটি উদাহরণ হিসাবে বিতরণ করা হয়। ডাটাবেসের অবস্থা ঠিক করার জন্য ডাম্পের প্রয়োজন, যেহেতু আমরা গ্যারান্টি দিতে পারি না যে এটি একদিন, মাস, বছরে পরিবর্তন হবে না।
  2. আমাদের একটি প্রকল্প টেমপ্লেট থাকবে না, তাই প্রকল্পটি নিজেই তৈরি করুন। এটি সমস্ত প্রয়োজনীয় নির্ভরতা সহ একটি ম্যাভেন প্রকল্প হওয়া উচিত ( হাইবারনেট-কোর-জাকার্তা , মাইএসকিউএল-সংযোগকারী-জাভা , 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। উপরের সকলের উপর ভিত্তি করে, এটি একটি সুস্পষ্ট ManyToMany সম্পর্ক ।
    • আমরা টেবিলের দিকে তাকাই filmএবং language. যুক্তির দৃষ্টিকোণ থেকে, চলচ্চিত্রটির বিভিন্ন ভাষায় অনুবাদ থাকতে পারে এবং বিভিন্ন চলচ্চিত্র একই ভাষায় হতে পারে। অর্থাৎ, ManyToMany নিজেই নিজেকে সাজেস্ট করে । কিন্তু যদি আমরা টেবিলের বিষয়বস্তুর দিকে তাকাই film, আমরা দেখতে পাব যে টেবিলের প্রতিটি সারি একটি অনন্য চলচ্চিত্র। এবং লাইনে শুধুমাত্র একটি ভাষা_আইডি ক্ষেত্র রয়েছে (এছাড়াও মূল_ভাষা_আইডি রয়েছে, তবে সমস্ত রেকর্ডে এটি শূন্য, তাই আমরা এটি উপেক্ষা করতে পারি)। অর্থাৎ একটি ছবিতে একটি মাত্র ভাষা থাকতে পারে। এবং এক ভাষা, হতে পারে ভিন্ন চলচ্চিত্র। সংযোগটি হল ManyToOne (সংযোগটি চলচ্চিত্র থেকে ভাষায় নির্দেশিত)।
  5. এখন প্রধান কাজ হল সমস্ত প্রয়োজনীয় সত্তা ক্লাস তৈরি করা এবং সেগুলিকে স্কিমা টেবিলে ম্যাপ করা movie
  6. সমস্ত নির্ভরশীল ক্ষেত্রগুলির সাথে একটি নতুন গ্রাহক (গ্রাহক টেবিল) তৈরি করতে পারে এমন একটি পদ্ধতি যুক্ত করুন৷ পদ্ধতিটি লেনদেন করতে ভুলবেন না (যাতে এমন পরিস্থিতিতে না যায় যে ক্রেতার ঠিকানা ডাটাবেসে রেকর্ড করা হয়, তবে ক্রেতা নিজেই নয়)।
  7. একটি লেনদেন পদ্ধতি যোগ করুন যা বর্ণনা করে যে "গ্রাহক গিয়েছিলেন এবং একটি পূর্বে ভাড়া করা সিনেমা ফেরত দিয়েছেন" ইভেন্ট। আপনার পছন্দের যেকোনো ক্রেতা এবং ভাড়া ইভেন্ট চয়ন করুন। চলচ্চিত্রের রেটিং পুনরায় গণনা করার প্রয়োজন নেই।
  8. একটি লেনদেন পদ্ধতি যোগ করুন যা ইভেন্টের বর্ণনা দেয় “ক্রেতা দোকানে (স্টোর) গিয়েছিলেন এবং সেখানে ভাড়া (ভাড়া) ইনভেন্টরি (ইনভেন্টরি) দিয়েছিলেন। একই সময়ে, তিনি বিক্রেতাকে (কর্মচারীদের) একটি অর্থ প্রদান (অর্থ প্রদান) করেছেন। ফিল্ম (জায় মাধ্যমে) আপনার বিবেচনার ভিত্তিতে চয়ন করুন. একমাত্র সীমাবদ্ধতা হল ফিল্মটি অবশ্যই ভাড়ার জন্য উপলব্ধ থাকতে হবে। অর্থাৎ, হয় ভাড়ায় কোনো ইনভেন্টরি রেকর্ড থাকা উচিত নয়, অথবা এই ইনভেন্টরির শেষ ভাড়ার জন্য টেবিলের রিটার্ন_ডেট কলামটি পূরণ করা উচিত।rental
  9. একটি লেনদেন পদ্ধতি যোগ করুন যা ইভেন্টটি বর্ণনা করে "একটি নতুন চলচ্চিত্র শ্যুট করা হয়েছে এবং এটি ভাড়ার জন্য উপলব্ধ হয়েছে।" চলচ্চিত্র, ভাষা, অভিনেতা, বিভাগ, ইত্যাদি, আপনার বিবেচনার ভিত্তিতে চয়ন করুন।
  10. টেবিল গঠন পরিবর্তন করা যাবে না. তবে উন্নতির জন্য আপনাকে পরামর্শ দিতে হবে। আমরা অনুচ্ছেদ 4-এ একটি সমস্যাযুক্ত স্থান চিহ্নিত করেছি ( টেবিলের ক্ষেত্রের টেবিলে বিদেশী কী- এর অনুপস্থিতি )। ডাটাবেস কাঠামোতে এখনও এই ধরনের "ভুল" আছে কিনা দেখুন। যদি তাই হয়, প্রকল্পের মূলে একটি রিডমি ফাইল যোগ করুন এবং এই ভুলগুলি বর্ণনা করুন।film_textfilm_idfilm

প্রকল্প বিশ্লেষণ: