মাইএসকিউএল ডাটাবেস স্কিমা লেখার জন্য শিক্ষানবিশ গাইড

মাইএসকিউএল ডাটাবেস স্কিমা লেখার জন্য শিক্ষানবিশ গাইড

যখন একটি সফটওয়্যার প্রজেক্ট ডেভেলপ করা হয় তখন সবচেয়ে গুরুত্বপূর্ণ, মৌলিক এবং অভ্যন্তরীণ দিকগুলির মধ্যে একটি হল সঠিকভাবে কাঠামোগত ডাটাবেস স্কিমা। এটি একটি ঘর তৈরির সময় সমতুল্য যা আপনাকে নিশ্চিত করতে হবে যে ভিত্তি সঠিকভাবে স্থাপন করা হয়েছে, অন্যথায় একটি মানসম্মত বাড়ি তৈরির সম্ভাবনা ব্যাপকভাবে হ্রাস পেয়েছে।





একজন ভাবার চেয়ে আশ্চর্যজনকভাবে সহজ, আসুন একটি ভাল সংরক্ষণাগারভুক্ত ডাটাবেস স্কিমা লিখতে ব্যবহৃত বিভিন্ন দিকগুলি শিখি।





আপেল আইফোন অ্যাপলের লোগোতে আটকে আছে

টেবিল সিনট্যাক্স তৈরি করুন

শুরু করতে, আপনার প্রিয় পাঠ্য সম্পাদক খুলুন। একটি ডাটাবেস স্কিমা তৈরি করার জন্য একটি সাধারণ পাঠ্য ফাইলের চেয়ে বেশি কিছু প্রয়োজন হয় না। একটি ডাটাবেস একাধিক টেবিল নিয়ে গঠিত, প্রতিটিতে কলাম রয়েছে এবং CREATE TABLE সিনট্যাক্স একটি টেবিল তৈরি করতে ব্যবহৃত হয়। এখানে একটি মৌলিক উদাহরণ:






CREATE TABLE users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

আপনি দেখতে পাচ্ছেন এটি নামে একটি ডাটাবেস টেবিল তৈরি করবে ব্যবহারকারীরা যা চারটি কলাম নিয়ে গঠিত। এটি একটি মোটামুটি সোজা এগিয়ে এসকিউএল বিবৃতি দিয়ে শুরু হওয়া উচিত ছক তৈরি কর , ডাটাবেস টেবিলের নাম অনুসরণ করে, তারপর বন্ধনীগুলির মধ্যে টেবিলের কলামগুলি কমা দ্বারা পৃথক করা হয়।

সঠিক কলামের ধরন ব্যবহার করুন

উপরে দেখানো হয়েছে, টেবিলের কলামগুলি কমা দ্বারা পৃথক করা হবে। প্রতিটি কলামের সংজ্ঞা তিনটি একই অংশ নিয়ে গঠিত:



COL_NAME TYPE [OPTIONS]

কলামের নাম, তারপরে কলামের ধরন, তারপর যেকোন optionচ্ছিক প্যারামিটার। আমরা পরে alচ্ছিক প্যারামিটারগুলিতে প্রবেশ করব, কিন্তু কলামের ধরনে মনোনিবেশ করে, নীচে সর্বাধিক ব্যবহৃত কলাম প্রকারগুলি তালিকাভুক্ত করা হয়েছে:

সমস্ত অভিপ্রায়গুলির জন্য, উপরের কলামের প্রকারগুলি হল যেগুলি আপনাকে ভালভাবে নির্মিত মাইএসকিউএল ডাটাবেস স্কিমা লিখতে হবে।





কলাম বিকল্পগুলি সংজ্ঞায়িত করুন

কলাম সংজ্ঞায়িত করার সময় বিভিন্ন বিকল্প রয়েছে যা আপনি নির্দিষ্ট করতে পারেন। নীচে এর আরেকটি উদাহরণ ছক তৈরি কর বিবৃতি:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

উপরেরগুলি কিছুটা ভয়ঙ্কর মনে হতে পারে, তবে বিরক্ত করবেন না, এটি বেশ সহজ। ভাঙা, উপরের বিবৃতিতে কী ঘটছে তা এখানে:





  • টেবিলের গতি এবং পারফরম্যান্সে সহায়তা করার জন্য আপনার সর্বদা সম্ভাব্য সমস্ত কলামে NOTL ব্যবহার করা উচিত। এটি কেবল নির্দিষ্ট করে যে কলামটি খালি / শূন্য রাখা যাবে না যখন একটি সারি োকানো হয়।
  • সর্বদা কলামের আকার যথাসম্ভব ছোট রাখার চেষ্টা করুন, কারণ এটি গতি এবং কর্মক্ষমতা উন্নত করতে সাহায্য করে।
  • দ্য আইডি কলাম হল একটি পূর্ণসংখ্যা, এটি টেবিলের প্রাথমিক চাবি যার অর্থ এটি অনন্য, এবং প্রতিবার একটি রেকর্ড isোকানোর সময় এটি বৃদ্ধি পাবে। এটি সাধারণত আপনার তৈরি করা সমস্ত টেবিলে ব্যবহার করা উচিত যাতে আপনি সহজেই টেবিলের মধ্যে যে কোনও একক সারি উল্লেখ করতে পারেন।
  • দ্য অবস্থা কলামটি একটি ENUM এবং অবশ্যই 'সক্রিয়' বা 'নিষ্ক্রিয়' এর মান থাকতে হবে। যদি কোন মান নির্দিষ্ট করা না হয়, তাহলে 'সক্রিয়' অবস্থা দিয়ে একটি নতুন সারি শুরু হবে।
  • দ্য ভারসাম্য প্রতিটি নতুন সারির জন্য কলাম 0 থেকে শুরু হয়, এবং এটি একটি পরিমাণ যা দুটি দুই দশমিক পয়েন্ট ফরম্যাট করা হয়।
  • দ্য জন্ম তারিখ কলামটি কেবল একটি তারিখ কিন্তু একটি শূন্য মানের জন্যও অনুমতি দেয় কারণ জন্মের তারিখটি সৃষ্টির সময় জানা যাবে না।
  • শেষ, এ নির্মিত কলামটি একটি টাইমস্ট্যাম্প এবং সারি wasোকানোর সময় বর্তমান সময়ে ডিফল্ট।

উপরের একটি সুন্দর কাঠামোগত ডাটাবেস টেবিলের একটি উদাহরণ, এবং এটি একটি উদাহরণ হিসাবে ব্যবহার করা উচিত।

রিলেশনাল ডাটাবেস ব্যবহার করার সবচেয়ে বড় সুবিধাগুলির মধ্যে একটি মাইএসকিউএল বিদেশী কী সীমাবদ্ধতা এবং ক্যাসকেডিং এর জন্য এটি চমৎকার সমর্থন। এটি হল যখন আপনি একটি কলাম দ্বারা দুটি টেবিল একসাথে সংযুক্ত করেন, একটি পিতামাতার সন্তানের সম্পর্ক তৈরি করে, তাই যখন পিতামাতার সারি মুছে ফেলা হয় তখন প্রয়োজনীয় শিশু সারিও স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।

এখানে একটি উদাহরণ:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

আপনি শেষ লাইন হিসাবে বিদেশী কী ধারাটি লক্ষ্য করবেন। এই লাইনটি কেবল বলে যে এই টেবিলে শিশু সারি রয়েছে যা দ্বারা সংযুক্ত ব্যবহারকারীর প্রমানপত্র তাদের মূল সারিতে কলাম, যা হল আইডি এর কলাম ব্যবহারকারীরা টেবিল এর মানে হল, যেকোনো সময় সারি থেকে মুছে ফেলা হয় ব্যবহারকারীরা টেবিল, মাইএসকিউএল স্বয়ংক্রিয়ভাবে সমস্ত সংশ্লিষ্ট সারি মুছে ফেলবে আদেশ টেবিল আপনার ডাটাবেসের মধ্যে কাঠামোগত অখণ্ডতা নিশ্চিত করতে সাহায্য করে।

এছাড়াও নোট করুন ইঞ্জিন = InnoDB উপরের বিবৃতির শেষে। যদিও InnoDB এখন ডিফল্ট মাইএসকিউএল টেবিল টাইপ, এটি সবসময় ছিল না, তাই এটি কেবল নিরাপদ পাশে থাকার জন্য যোগ করা উচিত, কারণ ক্যাসকেডিং শুধুমাত্র InnoDB টেবিলের সাথে কাজ করে।

কিভাবে একটি হোমগ্রুপ উইন্ডোজ 10 সরান

আত্মবিশ্বাসের সাথে ডিজাইন

আপনি এখন কঠিন, সুগঠিত মাইএসকিউএল ডাটাবেস স্কিমা স্থাপত্যের পথে আছেন। উপরোক্ত জ্ঞান ব্যবহার করে আপনি এখন সুসংগঠিত স্কিমা লিখতে পারেন যা উভয়, কর্মক্ষমতা এবং কাঠামোগত অখণ্ডতা প্রদান করে।

আপনার স্কিমার জায়গায়, নিশ্চিত করুন যে আপনি কীভাবে এটি ব্যবহার করবেন তা জানেন প্রয়োজনীয় এসকিউএল কমান্ড

শেয়ার করুন শেয়ার করুন টুইট ইমেইল এসকিউএল যোগদান করার সাথে সাথে একাধিক ডেটাবেস টেবিলগুলি কীভাবে জিজ্ঞাসা করবেন

এসকিউএল জয়েনগুলি কীভাবে প্রশ্নগুলি প্রবাহিত করতে, সময় বাঁচাতে এবং আপনাকে এসকিউএল পাওয়ার ব্যবহারকারীর মতো অনুভব করতে শিখুন।

পরবর্তী পড়ুন
সম্পর্কিত বিষয় লেখক সম্পর্কে ম্যাট ডিজাক(18 নিবন্ধ প্রকাশিত) ম্যাট ডিজাক থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন