আপনার যে কেউ বলেছেন যে একটি একক "ডান" উপায় আছে সে সম্পর্কে সন্দেহ করা উচিত। সঠিক উপায় পরিস্থিতি উপর নির্ভর করে। সিপিটি অবকাঠামো ব্যবহারের অনেকগুলি উল্লেখযোগ্য সুবিধা রয়েছে:
- আপনি বিনামূল্যে ড্যাশবোর্ড ইউআই পাবেন
- ইনস্টলেশনটি ব্যবহার করা হতে পারে এমন কোনও ধ্রুবক ক্যাশে প্লাগইন সহ আপনি স্বয়ংক্রিয়ভাবে ডাব্লুপি'র ক্যাচিংয়ের সুবিধা গ্রহণ করেন
- আপনি স্বয়ংক্রিয়ভাবে পোস্ট পুনর্বিবেচনার মতো গুডিজ পাবেন
- আপনি
WP_Query
ক্লাসে অ্যাক্সেস পেয়েছেন , যার অর্থ, তাত্ত্বিকভাবে, আপনাকে সম্ভবত কোনও বাগি-এবং-দুর্বল-এবং-অদক্ষ এসকিউএল-তে লিখতে হবে না (বা কমপক্ষে খুব বেশি নয়) S
- আপনি যদি প্লাগইন বিতরণ বা ওপেন-সোর্স বিকাশের জন্য এটি খোলার পরিকল্পনা করছেন তবে আপনি দেখতে পাবেন যে বিকাশকারীরা আপনার নিজস্ব কাস্টম স্টাফের তুলনায় কাস্টম পোস্টের প্রকারগুলি এবং সম্পর্কিত এপিআই ফাংশনগুলি ব্যবহার করে আরও স্বাচ্ছন্দ্যবোধ করছেন
সিপিটি এপিআইয়ের সমস্যাগুলি বেশিরভাগ ক্ষেত্রেই এটি পোস্টের রূপকের সাথে অত্যন্ত বিবাহিত এবং এই উপাত্তের সাথে রূপক হিসাবে উপস্থিত হওয়া ডেটা টাইপের সমস্ত দিক থেকেই আসে। মাইএসকিউএল কমান্ড লাইন থেকে চালান DESCRIBE wp_posts
। ডাব্লুপি অনুমান করে যে আপনার সামগ্রীর একটি শিরোনাম রয়েছে, এটির (একক) লেখক রয়েছে, আপনাকে কেবল তৈরি তারিখ এবং শেষ-সম্পাদিত তারিখের উপর নজর রাখতে হবে, আপনাকে একটি আন-ইনডেক্সড post_content
ইত্যাদির জন্য স্থান প্রয়োজন হবে ইত্যাদি কাজ করে This ভাল কিছু ধরণের বিষয়বস্তুর জন্য, তবে অন্যের জন্য অগত্যা নয়। আপনি ইতিমধ্যে কিছু সম্ভাব্য সমস্যার দিক নির্দেশনা দিয়েছেন:
আমি যদি সেই পথে যাই তবে সিপিটি অনুযায়ী আমার অতিরিক্ত ক্ষেত্রগুলির জন্য পোস্ট মেটাফিল্ডগুলির সংখ্যা প্রয়োজন এবং যদি এটি জিনিসগুলিকে "কৃপণ" করে তোলে
wp_posts
সিপিটি এপিআইয়ের মাধ্যমে স্কিমাটি বাড়ানোর দুটি উপায় রয়েছে : পোস্টমেটা এবং ট্যাক্সনোমিজ। পোস্টমেটা হ'ল কী-মানযুক্ত জোড়া, যা একগুচ্ছ বিবিধ ডেটা সঞ্চয় করার জন্য দুর্দান্ত, তবে জটিল লুকআপ করার জন্য মোটেও অনুকূল নয়। এই ক্ষেত্রে ট্যাক্সনোমিগুলি কিছুটা আরও নমনীয়, তবে আপনার যদি খুব জটিল লুকআপ থাকে তবে আপনি প্রচুর সম্ভাব্য ব্যয়বহুল সাবকিউরিয়ের মুখোমুখি হতে পারেন। ( meta_query
এবং tax_query
যুক্তি এবং তাদের কোয়েরি নির্মাণকারী ক্লাসগুলি খুব সুন্দর এবং সহজ, যদিও।)
যদি আপনার পরামর্শ অনুসারে, মাঝে মধ্যে প্রতিবেদনের ক্ষেত্রে আপনাকে কেবল এই ধরণের "আধা জটিল রিলেশনাল ফিল্টারগুলি" করা প্রয়োজন তবে এই আর্কিটেকচারটি সম্ভবত আপনার পক্ষে ঠিক আছে। আপনি যখন ফিল্টারগুলি ব্যবহারকারীদের কাছে তুলে ধরতে শুরু করেন তখনই আপনাকে JOIN
সমস্ত সময় অনেকগুলি জটিল ও সাব-কোয়্যারি চালাতে হয় , যাতে জিনিসগুলি খুব দ্রুত হাতছাড়া হয়ে যায়।
কীভাবে সম্পর্কগুলি সেরাভাবে পরিচালনা করতে হয়, বিশেষত যদি আমার অনেকের মধ্যে অনেকগুলি সম্পর্ক থাকে
বহু-থেকে-বহু সম্পর্ক হ'ল ডাব্লুপি দেব সম্প্রদায়ের একটি দীর্ঘকালীন স্টিকিং পয়েন্ট ( https://core.trac.wordpress.org/ticket/14513 দেখুন )। আপনি পোস্ট_আইডিতে টেকনোমি আইটেমগুলি ম্যাপিংয়ের মাধ্যমে কাস্টম টেবিলগুলি ব্যবহার না করে এটি নকল করতে পারেন (যাতে, উদাহরণস্বরূপ, আপনি বলতে পারেন যে 'P3 এর সাথে P5 এর সম্পর্ক রয়েছে' P3 ট্যাগটি 'Y-P3' রয়েছে বলে তবে এটি বিভ্রান্তিকর হয়) (এবং অদক্ষ) খুব দ্রুত। আপনি নিজের সম্পর্ক টেবিল তৈরির বিষয়টিও বিবেচনা করতে পারেন যা সিপিটিগুলির সাথে একত্রে লিঙ্ক রয়েছে - আপনি এখনও সিপিটি-র সুবিধা পেতে পারেন এবং কেবল একটি একক ডিবি টেবিল তৈরি করছেন। এই পদ্ধতির একটি সুন্দর-সম্পাদিত সংস্করণের জন্য, পোস্টগুলি 2 পোস্ট প্লাগইন দেখুন: https://wordpress.org/extend/plugins/posts-to-posts/
সুতরাং, শেষে, আপনার উপর ভিত্তি করে সিদ্ধান্ত নেওয়া উচিত:
- আপনি যে ধরণের ডেটা সংরক্ষণ করবেন - তারা কীভাবে "পোস্ট" হবে
- যে ধরণের প্রশ্নের প্রয়োজন হবে - সেগুলি কতটা জটিল হবে
- স্কেল - আপনার কাঙ্ক্ষিত স্কিমাটি কতটা জটিল, আপনার মোট কতগুলি অবজেক্ট থাকবে এবং আপনি কতজন ব্যবহারকারী অনুমান করবেন?
যদি উত্তরগুলি হয়: খুব পোস্ট, খুব জটিল নয়, এবং অতি-বিশাল স্কেল করতে হবে না, সিপিটি সহ যান। অন্যথায় আপনার নিজের টেবিলগুলি বিবেচনা করুন।