কিছুক্ষণ আগে আমার অনুরূপ কিছু করার দরকার ছিল এবং নীচে আমাদের কী শেষ হয় তা বর্ণনা করে।
আমাদের দুটি টেবিল রয়েছে, আইটেম এবং অসম্পূর্ণ আইটেম। যখন ব্যবহারকারী উইজার্ডের সাথে ডেটা পূরণ করে, তথ্যটি অসম্পূর্ণ আইটেমের টেবিলে সংরক্ষণ করা হয়। প্রতিটি উইজার্ড পদক্ষেপে, সার্ভার সেই ধাপের সময় প্রবেশ করা ডেটাটিকে বৈধতা দেয়। যখন উইজার্ডটি ব্যবহারকারীর সাথে শেষ হয়, উইজার্ড একটি নিশ্চিতকরণ পৃষ্ঠায় একটি গোপন / পঠনযোগ্য ফর্মটি রেন্ডার করে যা সমস্ত ডেটা জমা দেওয়ার জন্য দেখায়। ব্যবহারকারী এই পৃষ্ঠাটি পর্যালোচনা করতে পারেন এবং ত্রুটিগুলি ঠিক করতে প্রাসঙ্গিক পদক্ষেপে ফিরে যেতে পারেন। একবার ব্যবহারকারী তাদের এন্ট্রি নিয়ে সন্তুষ্ট হয়ে গেলে, ব্যবহারকারী ক্লিকগুলি জমা দেয় এবং উইজার্ড তারপরে লুকানো / কেবল পঠিত ফর্ম ক্ষেত্রগুলির সমস্ত ডেটা API সার্ভারে জমা দেয়। যখন এপিআই সার্ভার এই অনুরোধটি প্রসেস করে, উইজার্ডের প্রতিটি ধাপে এটি করা সমস্ত বৈধতা পুনরায় চালু করে এবং অতিরিক্ত পদক্ষেপগুলি পৃথক পদক্ষেপগুলিতে ফিট করে না (যেমন গ্লোবাল বৈধকরণ, ব্যয়বহুল বৈধতা)।
দুটি টেবিল পদ্ধতির সুবিধা:
ডাটাবেসে, আপনার অসমাপ্ত আইটেমের চেয়ে আইটেম টেবিলের উপর আরও কঠোর বাধা থাকতে পারে; উইজার্ড শেষ হয়ে গেলে আপনার কাছে optionচ্ছিক কলাম থাকতে হবে না যা আসলে প্রয়োজন হবে।
প্রতিবেদনের জন্য সমাপ্ত আইটেমগুলির জুড়ে সমষ্টিগত জিজ্ঞাসাগুলি সহজ, কারণ আপনার অসম্পূর্ণ আইটেমগুলি বাদ দিতে ভুলবেন না। আমাদের ক্ষেত্রে, আইটেম এবং অসম্পূর্ণ আইটেমগুলির মধ্যে আমাদের কখনই সামগ্রিক অনুসন্ধানগুলি করার দরকার পড়েনি, সুতরাং এটি কোনও সমস্যা নয়।
অসুবিধা:
- এটি বৈধতা যুক্তির সদৃশ হওয়ার প্রবণতা। আমরা যে ওয়েব ফ্রেম ফ্রেম ব্যবহার করেছি, তা জাঙ্গো এটিকে কিছুটা সহনীয় করে তোলে কারণ আইটেম এবং অসম্পূর্ণ আইটেমে আমাদের আলাদা হওয়া দরকার সীমাবদ্ধতাগুলি পরিবর্তন করতে আমরা কিছুটা মেটা যাদু নিয়ে মডেল উত্তরাধিকার ব্যবহার করেছি। জ্যাঙ্গো বেশিরভাগ ডাটাবেস তৈরি করে এবং মডেল থেকে বৈধতা ফর্ম করে এবং আমাদের কেবল এটির উপরে কয়েকটি অতিরিক্ত বৈধতা হ্যাক করতে হবে।
অন্যান্য সম্ভাবনাগুলি যা আমি বিবেচনা করেছি এবং কেন আমরা তাদের সাথে যাই নি:
- কুকি বা স্থানীয় স্টোরেজে ডেটা সংরক্ষণ করা: ব্যবহারকারী অন্য ডিভাইস থেকে বা তাদের ব্রাউজারের ইতিহাস মুছলে তাদের জমা দেওয়া চালিয়ে যেতে পারে না
- অসম্পূর্ণ আইটেমটি ডাটাবেস বা সেকেন্ডারি ডেটাস্টোরগুলিতে আনস্ট্রাকচার্ড ডেটা (যেমন জেএসএন) হিসাবে সঞ্চয় করুন: আমি পার্সিং লজিক সংজ্ঞায়িত করতে হবে এবং জ্যাঙ্গোর স্বয়ংক্রিয় মডেল / ফর্ম বৈধতা ব্যবহার করতে পারবেন না।
- ক্লায়েন্টের পক্ষে প্রতি পদক্ষেপের বৈধতা দিন: আমাকে পাইথন / জ্যাঙ্গো এবং জাভাস্ক্রিপ্টের মধ্যে বৈধতা যুক্তিকে নকল করতে হবে।