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