ডেটা মডেল ডিজাইনার
ডেটা মডেল ডিজাইনার ব্যবহার করে ডেটাবেস তৈরি করা
ডাটাবেস ডিজাইন
এটি আপনার নিজস্ব ডাটাবেস ডিজাইন করার সময়। এটি করতে, বাম প্যানেলের Database ট্যাবে যান।
ডেটা মডেল
ডাটাবেসের ডেটা বিশেষ টেবিল (মডেল) আকারে সংরক্ষণ করা হয়। এবং আপনি লক্ষ্য করতে পারেন যে আমরা ইতিমধ্যে একটি মডেল আছে. এটি অনুমোদন মডিউলের অংশ এবং ডিফল্টরূপে প্রতিটি প্রকল্পে অন্তর্ভুক্ত করা হয়। এটির জন্য ধন্যবাদ, অ্যাপ্লিকেশনটির নতুন ব্যবহারকারী তৈরি করা হয় এবং বিদ্যমানগুলি পরিচালিত হয়। তবে আমরা এখন এর অধ্যয়নের দিকে মনোনিবেশ করব না, আমরা আমাদের নিজস্ব মডেল তৈরি করব।
কল্পনা করুন যে আমরা একটি মানচিত্র পরিষেবা তৈরি করছি। আসুন একটি মডেল তৈরি করি যাতে দেশগুলির তথ্য রয়েছে। এটি তৈরি করতে, আপনাকে ক্যানভাসের একটি খালি জায়গায় ডান-ক্লিক করতে হবে এবং Create empty model.
তৈরি করতে, আমাদের শুধুমাত্র মডেলের নাম উল্লেখ করতে হবে। আমরা কোর্সের আরও মডিউলগুলিতে শেষ পয়েন্ট এবং ব্যবহারকারী ইন্টারফেস উপাদানগুলির স্বয়ংক্রিয়-প্রজন্ম নিয়ে কাজ করব।
মডেল ক্ষেত্র
অনুগ্রহ করে মনে রাখবেন যে তৈরির পরপরই, মডেলটিতে ইতিমধ্যে 4 টি ক্ষেত্র রয়েছে। এগুলি হল সিস্টেম ক্ষেত্র, যার উপস্থিতি মডেলটির প্রাথমিক সৃষ্টি এবং আরও ব্যবহারকে ব্যাপকভাবে সরল করে।
ID (integer) - অনন্য শনাক্তকারী, প্রাথমিক কী। এটি টেবিলের প্রতিটি নতুন এন্ট্রির জন্য স্বয়ংক্রিয়ভাবে তৈরি করা হয় এবং কোন সদৃশ নেই তা নিশ্চিত করার উদ্দেশ্যে। এটি আইডি দ্বারা যে আপনি একটি টেবিলে একটি রেকর্ড অনন্যভাবে সনাক্ত করতে পারেন। এর মান 1 থেকে শুরু হয় এবং প্রতিটি নতুন এন্ট্রির জন্য স্বয়ংক্রিয়ভাবে 1 দ্বারা বৃদ্ধি পায়।
CreatedAt (datetime) - টেবিলে রেকর্ড তৈরি করার সময়।
UpdatedAt (datetime) - যে সময় এন্ট্রিটি শেষবার পরিবর্তন করা হয়েছিল।
মুছে ফেলার সময় DeletedAt (datetime) - এন্ট্রিটি মুছে ফেলার সময়। অবশ্যই, শুধুমাত্র যদি নরম-অপসারণ ব্যবহার করা হয়। অর্থাৎ, এই জাতীয় মুছে ফেলা, যখন রেকর্ডটি কেবল মুছে ফেলা হিসাবে চিহ্নিত করা হয় এবং এটিতে অ্যাক্সেসের অনুরোধ দ্বারা ফিল্টার করা হয়, তবে একই সময়ে শারীরিকভাবে টেবিলে থাকে। এটি বাল্ক মুছে ফেলার থেকে আলাদা, যা আসলে ডেটা সম্পূর্ণরূপে মুছে দেয়।
সিস্টেমগুলি ছাড়াও, তৈরি করা মডেলটিতে কাস্টম ক্ষেত্র যুক্ত করা বুদ্ধিমানের কাজ হবে৷ ধরুন আমরা দেশের নাম এবং কিছু বিবরণ দেখতে চাই তার সম্পর্কে তথ্য সহ।
একটি ক্ষেত্রের ধরন নির্বাচন করা একটি সমস্যা হওয়া উচিত নয়। String নামের জন্য উপযুক্ত, এবং তথ্য বিবরণের জন্য Text ।
এছাড়াও, আরও চারটি সুইচ উপলব্ধ:
Multiple values (Array) - একক এন্ট্রির পরিবর্তে অ্যারে ব্যবহার করুন।
Not null - নির্দিষ্ট ক্ষেত্রটি খালি হতে পারে না, এতে সর্বদা ডেটা থাকতে হবে।
Unique - ক্ষেত্রের মান অবশ্যই অনন্য হতে হবে, এই মডেলটিতে দুটি রেকর্ড থাকতে পারে না যার এই ক্ষেত্রের মান একই।
Index - নির্দেশ করে যে অনুসন্ধানের গতি বাড়ানোর জন্য এই ক্ষেত্রের জন্য একটি বিশেষ সূচক তৈরি করা হবে।
সাধারণভাবে, যদি সত্যিই প্রয়োজন হয় তবে চিহ্নগুলি পরীক্ষা করা ঠিক। উদাহরণ স্বরূপ, আমরা দেশের নামের জন্য Not null এবং Unique চিহ্নিত করতে পারি, ধরে নিই যে নাম ছাড়া একটি দেশ বা একই নামের দুটি দেশ থাকতে পারে না। যাইহোক, অ্যাপ্লিকেশনের যুক্তি তৈরির পর্যায়ে এটি নিয়ন্ত্রণ করা এবং ডাটাবেসের উপর সীমাবদ্ধতা না রাখা একটি ভাল ধারণা।
একইভাবে, শহরগুলির তথ্য সহ একটি টেবিল তৈরি করুন। এটিতে কী ডেটা ক্ষেত্র থাকতে পারে, এই ক্ষেত্রগুলি কী ধরণের তা নিয়ে ভাবুন।
ডেটা মডেল সম্পর্ক
ডাটাবেসের ডেটা বিক্ষিপ্ত টেবিলের আকারে নিজস্বভাবে বিদ্যমান নেই। তারা একটি নির্দিষ্ট উপায়ে একে অপরের সাথে সম্পর্কিত। একটি ডেটা মডেল তৈরির চাবিকাঠি হল এই সম্পর্কগুলিকে সংজ্ঞায়িত করা এবং সম্পর্ক তৈরি করা।
এই ধরনের লিঙ্কগুলি স্থাপন করার জন্য, একটি মডেলের সীমানা থেকে অন্য মডেলে মাউস দিয়ে একটি লাইন আঁকতে হবে। আমাদের উদাহরণে, আমরা নিশ্চিতভাবে জানি যে প্রতিটি শহর কোনো না কোনো দেশে অবস্থিত, তাই আমরা দেশ থেকে শহরে একটি লিঙ্ক তৈরি করতে পারি।
3টি বিভিন্ন ধরণের সংযোগ রয়েছে:
এক থেকে এক (has one) । টেবিলের প্রতিটি রেকর্ড সংশ্লিষ্ট টেবিল থেকে একটি রেকর্ডে ম্যাপ করা হয় (এটি বিপরীতেও সত্য)। একটি সাধারণ উদাহরণ হল একজন ব্যক্তি এবং তাদের পাসপোর্ট। আমরা সর্বদা নিশ্চিত হতে পারি যে এই সংযোগটি অনন্য। একটি পাসপোর্টে শুধুমাত্র একজন ধারক থাকতে পারে এবং প্রতিটি ব্যক্তির শুধুমাত্র একটি বৈধ পাসপোর্ট থাকতে পারে।
এক থেকে বহু (has many) । একটি টেবিলের প্রতিটি রেকর্ড অন্য টেবিলে অনেক রেকর্ড থাকতে পারে। আমাদের ডাটাবেস একটি অনুরূপ উদাহরণ. একটি দেশের বিভিন্ন শহর থাকতে পারে, কিন্তু প্রতিটি শহর শুধুমাত্র একটি দেশের অন্তর্গত হতে পারে। এই সংযোগ আমরা করতে হবে.
অনেক থেকে অনেক . একটি সম্পর্ক যেখানে এক টেবিলের একাধিক রেকর্ড অন্য টেবিলের একাধিক রেকর্ডের সাথে মিলিত হতে পারে। একটি সহজ উদাহরণ হল শিক্ষক এবং ছাত্রদের মধ্যে সম্পর্ক। প্রতিটি শিক্ষক যেমন অনেক শিক্ষার্থীকে শেখাতে পারেন, তেমনি প্রতিটি শিক্ষার্থী বিভিন্ন শিক্ষকের কাছ থেকে শিখতে পারে।