টেবিলের মধ্যে সম্পর্ক তৈরি না করে অ্যাপ্লিকেশনগুলির জন্য একটি ডাটাবেস ডিজাইন করা খুব কমই সম্পূর্ণ হয়। AppMaster ডাটাবেস সম্পাদক আপনাকে একটি সহজ পদক্ষেপে এই ধরনের সম্পর্ক তৈরি করতে দেয়। আপনাকে কেবল টেবিলের মধ্যে একটি লিঙ্ক লাইন আঁকতে হবে এবং তারপর সম্পর্কের ধরনটি নির্বাচন করতে হবে (এক-থেকে-এক, এক-থেকে-অনেক, বহু-থেকে-অনেক) এবং, যদি প্রয়োজন হয়, ক্ষেত্রের নাম। কিন্তু যদি টেবিল নিজেই উল্লেখ করতে হবে?
আসুন পরিস্থিতি বিশ্লেষণ করি যখন রেকর্ডের একটি নির্দিষ্ট লগ বজায় রাখা প্রয়োজন। একই সময়ে, এটি এমনভাবে সংগঠিত হয় যে রেকর্ডগুলি একটি শৃঙ্খলে কঠোরভাবে তৈরি করা হয়। প্রতিটি এন্ট্রি অবশ্যই পূর্ববর্তী এবং পরবর্তী এন্ট্রির সাথে লিঙ্ক করতে হবে (অবশ্যই প্রথম এবং শেষ এন্ট্রি ব্যতীত)। এইভাবে, প্রতিটি পৃথক রেকর্ডের জন্য সমগ্র চেইনটি ট্র্যাক করা যেতে পারে এবং সিস্টেমটি অননুমোদিত পরিবর্তনগুলির বিরুদ্ধে অতিরিক্ত সুরক্ষা পায়।
ডাটাবেস ডিজাইন
প্রথমত, আমাদের ডাটাবেস ডিজাইনারে মডেলটি তৈরি করতে হবে। এর নাম দেওয়া যাক Journal এবং একটি পাঠ্য ক্ষেত্র যোগ করুন, record করুন।
পরবর্তী ধাপ হল একটি সংযোগ তৈরি করা। এটি করার জন্য, ক্যানভাসের যেকোনো জায়গায় ডান-ক্লিক করুন এবং Create relation নির্বাচন করুন।
পরবর্তী ধাপ হল সংযোগ সেট আপ করা। এটি করার জন্য, আপনাকে Source এবং Target হিসাবে একই মডেল নির্বাচন করতে হবে (এই ক্ষেত্রে, Journal ), ক্ষেত্রের নাম সেট করতে হবে ( next এবং previous ), এবং সংযোগের ধরন ( has_one )।
স্ব-রেফারেন্সিং টেবিল সেটআপ সম্পূর্ণ। আপনি ফ্রন্ট-এন্ড ডিজাইন এবং ব্যবসায়িক প্রক্রিয়া তৈরি করা শুরু করতে পারেন।
ব্যবসায়িক প্রক্রিয়া তৈরি করা
জার্নালে নতুন এন্ট্রি যোগ করার জন্য একটি ব্যাকএন্ড ব্যবসায়িক প্রক্রিয়া তৈরি করা যাক। এটি একটি ইনপুট পরামিতি হিসাবে নতুন এন্ট্রির পাঠ্য পাবে। এটি নতুন এন্ট্রির সাথে যুক্ত করার জন্য সর্বশেষ এন্ট্রির জন্য ডাটাবেস অনুসন্ধান করবে। অনুসন্ধানের জন্য, আপনি _Limit = 1 সেট করতে পারেন (কারণ শুধুমাত্র একটি শেষ রেকর্ড প্রয়োজন), যা যথেষ্ট হবে যেহেতু, ডিফল্টরূপে, রেকর্ডগুলি আইডি দ্বারা অর্ডার করা হবে এবং ডাটাবেসে যুক্ত করা ক্রম অনুসারে জারি করা হবে, শেষ রেকর্ড।
অনুসন্ধানের ফলাফল একটি উপাদান সমন্বিত একটি অ্যারে হবে। আমাদের এটিকে index 0 সহ Array Element ব্লক ব্যবহার করে বের করতে হবে এবং একটি নতুন জার্নাল এন্ট্রি তৈরি করতে হবে ( Make Journal )। শেষ ধাপটি শুধুমাত্র ডাটাবেসে লিখতে হবে ( DB: Create Journal ) এবং ব্যবসা প্রক্রিয়াটি সম্পূর্ণ করুন।
এই ব্যবসায়িক প্রক্রিয়াটি নতুন ডাটাবেস রেকর্ড তৈরি করতে ডিফল্ট শেষ পয়েন্টের জন্য ব্যবহার করা যেতে পারে।
ফ্রন্ট-এন্ড ডিজাইন
একটি ওয়েব অ্যাপ্লিকেশনের ফ্রন্ট-এন্ডের জন্য, পৃষ্ঠায় তিনটি উপাদান যোগ করা যথেষ্ট।
- নতুন এন্ট্রির বিষয়বস্তু প্রবেশের জন্য পাঠ্য ক্ষেত্র
- একটি এন্ট্রি যোগ করার জন্য বোতাম
- সমস্ত এন্ট্রি প্রদর্শনের জন্য টেবিল।
"ADD Journal Record" বোতামের জন্য, আপনাকে একটি সহজ ব্যবসায়িক প্রক্রিয়াও তৈরি করতে হবে। বোতামটি ক্লিক করার পরে, নতুন রেকর্ড তৈরি করতে ইনপুট ক্ষেত্র থেকে পাঠ্যটি শেষ পয়েন্টে পাঠানো উচিত এবং শেষ ক্রিয়া হিসাবে টেবিলের বিষয়বস্তু আপডেট করতে অন্য একটি বোতামে ক্লিক করতে হবে।
টেবিলের জন্য, এটি ব্যবসায়িক প্রক্রিয়াগুলি সেট আপ করার জন্যও উপযুক্ত, তবে এই পাঠে, আমরা এটি নিয়ে আলোচনা করব না। সমস্ত প্রয়োজনীয় তথ্য টেবিল সেট আপ পাঠে পাওয়া যাবে. এটি শুধুমাত্র লক্ষণীয় যে ডেটা পাওয়ার সময়, আপনাকে সম্পর্কিত টেবিল থেকে ডেটা পেতে _with প্যারামিটারটি নির্দিষ্ট করতে হবে (আমাদের ক্ষেত্রে, টেবিলটি নিজের সাথে সম্পর্কিত হওয়া সত্ত্বেও)।
আমরা অ্যাপ্লিকেশনটি প্রকাশ করতে পারি, কয়েকটি এন্ট্রি যোগ করতে পারি এবং সবকিছু সঠিকভাবে কাজ করে কিনা তা যাচাই করতে পারি। প্রতিটি এন্ট্রি সত্যিই একই টেবিলের এন্ট্রির সাথে সম্পর্কিত। উদাহরণস্বরূপ, আইডি 3 সহ একটি এন্ট্রির জন্য, পূর্ববর্তী এন্ট্রি (আইডি 2) এবং পরবর্তী এন্ট্রি (আইডি 4) এর একটি লিঙ্ক রয়েছে৷