মেটা বনাম পৃথক ডাটাবেস টেবিল পোস্ট করুন


29

প্লাগইনগুলি ডেটা স্টোরেজ প্রয়োজন বিকাশ করার সময়, একটি পদ্ধতি বা অন্য কোন পদ্ধতি ব্যবহার করার পক্ষে ভাল কি?

ব্যাখ্যা প্যাড দেওয়া বিস্তারিত নয়:

সম্পূর্ণ নতুন টেবিলের সাথে ঝাঁপ দেওয়ার আগে, তবে বিবেচনা করুন যে ওয়ার্ডপ্রেস 'পোস্ট মেটা (ওরফে কাস্টম ফিল্ডস) আপনার প্লাগইনটির ডেটা সংরক্ষণ করে কিনা। পোস্ট মেটা পছন্দের পদ্ধতি; সম্ভব হলে / ব্যবহারিক হলে এটি ব্যবহার করুন।


এফওয়াইআই: এমবি কাস্টম টেবিল এমন একটি প্লাগইন যা ডাব্লুপির পোস্ট মেটা টেবিলের পরিবর্তে কাস্টম টেবিলগুলিতে মেটা ডেটা সঞ্চয় করতে পারে।
আনহ ট্রান

উত্তর:


30

ঠিক আছে, আমি যদি কোনও ডাব্লুপি স্ক্রিপ্টের কিডির টুপিটি নিই তবে আমার উত্তরটি হবে: সর্বদা পোস্ট_মেটা ব্যবহার করুন।

যাইহোক, আমি ডেটাবেস সম্পর্কে একটি বা দুটি জিনিস জানতে পেরেছি, সুতরাং আমার উত্তর হল: কখনও কখনও কখনও কখনও ডেটা সঞ্চয় করার জন্য কোনও EAV (ওরফে পোস্ট_মেটা টেবিল) ব্যবহার করবেন না যা আপনার প্রশ্নের প্রয়োজন হতে পারে।

সূচকের সম্মুখভাগে, মূলত মেটা টেবিলগুলিতে ব্যবহার করার মতো কোনও মূল্য নেই। সুতরাং, যদি আপনি ডেটা টাইপ এক্সওয়াইজেড সংরক্ষণ করে থাকেন এবং আশা করছেন আপনি XYZ সহ সমস্ত পোস্টের ক্যোয়ারী করছেন 'abc', ভাল ... শুভকামনা। (ডাব্লুপি ট্র্যাকের ব্যবহারকারী / ভূমিকা / ক্যাপগুলি সম্পর্কিত সমস্ত টিকিট দেখুন এটি কীভাবে বেদনা পেতে পারে তার একটি ধারণা দিতে।)

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

সুতরাং, না, না, না, না। কখনও কখনও কখনও কখনও কোনও মেটা ব্যবহার করবেন না । আপনি যা সংরক্ষণ করছেন তা প্রসাধনী না হলে এবং কখনই ক্যোয়ারির মানদণ্ডের অংশ হবে না।

এটি আপনার অ্যাপ্লিকেশনে ভেঙে যায়। আপনি যদি সঞ্চয় করছেন তবে বলুন যে কোনও সিনেমার পরিচালকের জন্ম তারিখ, তার চেয়ে বড় বিষয়। আপনি চান একটি মেটা ব্যবহার করুন। তবে আপনি যদি কোনও সিনেমার মুক্তির তারিখটি সংরক্ষণ করেন, তবে আপনি কোনও আলাদা টেবিল (বা পোস্ট টেবিলে কলাম যুক্ত করা) ব্যবহার না করে বাদ পড়ে এবং সেই কলামে একটি সূচি যুক্ত করতে পারেন।


1
হ্যাঁ, আমি যে প্লাগইনগুলি তৈরি করছি সেগুলি ইভেন্ট, সংবাদ, প্রেস রিলিজ, জব অফারগুলির মতো কাস্টম ডেটা পরিচালনা করছে ... "ওয়ার্ডপ্রেস ওয়ার্ল্ড" এর বাইরে থেকে, টেবিলগুলি ব্যবহার করা আসলে কোনও বিকল্প নয়। তবে ওয়ার্ডপ্রেস কোডেক্সের পরামর্শটি কিছুটা বিভ্রান্তিকর। কীভাবে ডেটারিয়াল খণ্ডগুলি সাধারণকরণ / কাঠামোগত / সূচিকৃত তথ্যের তুলনায় অগ্রাধিকার দেওয়া যায়?
নাসিফ বাউরগুইগ

1
আপনি যদি গড় ডাব্লুপি ডেভাকে জিজ্ঞাসা করেন, তবে তিনি সম্ভবত "একটি মেটা ব্যবহার করুন" বা "একটি শ্রেণিবদ্ধ ব্যবহার করুন" এর উত্তর দেবেন। এবং আমি একমত, যেখানে আপনি এর বিরুদ্ধে আপনার জিজ্ঞাসা করা উচিত point যদি তা হয় তবে এবং আমি বিশ্বাস করি এটি আপনার ক্ষেত্রে, আমার একমাত্র উত্তর হ'ল পোস্ট সারণিতে ক্ষেত্রগুলি যুক্ত করুন, বা সম্পূর্ণ পৃথক টেবিল তৈরি করুন। অন্যথায় যখন আপনি জিজ্ঞাসা করার বিষয়টি আসে তখন আপনি প্রচুর পারফরম্যান্স সম্পর্কিত সমস্যার মুখোমুখি হন এবং আরও গুরুত্বপূর্ণভাবে নোডের তালিকার জন্য, টপ-এন বাছাই করা।
ডেনিস ডি বার্নার্ডি

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

6
@ ডেনিস - পোস্টমেটার বিরুদ্ধে বেশ আবেগপূর্ণ উকিল, তাই না? আপনি জানেন যে আপনি গোঁড়ামির বিরুদ্ধে দৃly়তার সাথে চলেছেন এবং আপনি কোড কবিতার গির্জার উঁচু পুরোহিতদের ভাল উপাসনা থেকে বেরিয়ে যাবেন যদি আপনি এই জাতীয় কথা অবিরত করেন, তাই না? :-) তবে আপনি গুরুত্বের সাথে ভাবছেন না যে আপনি কিছুটা বড়ই হয়েছেন? এটি হাজার হাজার মেটা রেকর্ড হতে চলেছে কিনা তা নির্ভর করে। বেশিরভাগ ক্ষেত্রেই চিন্তার যথেষ্ট রেকর্ড নেই। যে জটিল সাইটটি আমি নিযুক্ত করছি তার প্রায় 10,000 টি নতুন রেকর্ড পরিকল্পনা সহ মেটা রেকর্ড রয়েছে এবং এটি ঠিক আছে (এফআইআই, এটি কোনও ব্লগ নয়।)
মাইকচিন্কেল

1
@ ডেনিস - মন্তব্যের জন্য ধন্যবাদ। এবং আমাকে ভুল করবেন না, আমি সম্ভবত আপনার দৃষ্টিভঙ্গির দিকে অনেক বেশি ঝুঁকছি তবে 1 এর সংমিশ্রণে।) পডসের মতো ক্ষেত্রের যোগ্যতা এবং ২) ওয়ার্ডক্যাম্প বার্টিংহ্যামের ম্যাটের সাথে এক ঘন্টা ব্যাপী বিতর্ক এবং) মেটার সরলতা over আমি ইস্যুতে পরিবর্তন করতে পারে এমন অন্যান্য বিষয়ে আমার মনোযোগ কেন্দ্রীভূত করার পদত্যাগ করা হয়েছে। ডাব্লুসিবিতে আমি বুঝতে পেরেছিলাম যতক্ষণ না ম্যাট দায়িত্বে থাকবেন ততক্ষণ তা পরিবর্তন হবে না কারণ (আমার অনুমান) ম্যাট কম টেবিলের ধারণা নিয়ে এতটাই মোহিত তিনি নিজেকে 768 বাইটে সূচকের নীচের দিকগুলি চিনতে পারবেন না চাবি. <sigh>
মাইকচিন্কেল

5

যদি আপনার প্লাগইনটিতে প্রচুর ডেটা থাকে, তবে wp_postmetaনীচে প্রদর্শিত হিসাবে এটি ব্যবহার করা ভাল ধারণা নয়:

উদাহরণস্বরূপ WooCommerce গ্রহণ করা, ~ 30,000 পণ্য সহ একটি দোকানে, বলতে হবে, গড়ে প্রতি পণ্য হিসাবে 40 ডলার পোস্ট মেটা (গুণাবলী এবং সমস্ত কিছু), প্রতি পণ্য প্রতি 5 টি চিত্র চিত্র, যার অর্থ ~ 4 ইমেজ মেটা থাকবে প্রতিটি চিত্রের জন্য:

30,000 পণ্য এক্স 40 মেটা প্রতি = 1,200,000 সারি wp_postmeta

+ +

30,000 পণ্য এক্স 5 চিত্র প্রতিটি x 4 চিত্র মেটা = 600,000 সারি এর জন্য wp_postmeta

সুতরাং কেবলমাত্র 30,000 পণ্য দিয়ে আপনি 1,800,000 সারি সন্ধানের দিকে তাকিয়ে আছেন wp_postmeta

আপনি যদি আপনার পণ্য বা আপনার পণ্য চিত্রগুলিতে আরও সম্পত্তি যুক্ত করেন তবে এই সংখ্যাটি বহুগুণ হবে।

সমস্যাটি দ্বিগুণ:

  • মাইএসকিউএল-এর সাথে স্ব-যোগদানগুলি খুব ব্যয়বহুল
  • wp_postmetaআপনি যদি পরে মাইএসকিএল সংস্করণগুলি ব্যবহার না করেন তবে সারণীটি সূচিবদ্ধ হয় না (অর্থাত্ কোনও ফুলটেক্স সূচী নেই meta_value)

প্রকৃত কেস থেকে উদাহরণ দিতে:

SELECT meta_value FROM wp_postmeta WHERE meta_key LIKE '_shipping_city'

এই সমস্ত অর্ডার বিশদ থেকে শিপিং সিটি নির্বাচন করে একটি এন্ট্রি স্তর ডেডিকেটেড সার্ভারে 5-10 অর্ডার থাকা সত্ত্বেও পুরো a 3 সেকেন্ডে আসে । কারণ কোয়েরিটি কোনও wp_postmetaটেবিলের মধ্যে থেকে চালিত হয় যার লাইভ ইনস্টলেশনতে million 3 মিলিয়ন সারি রয়েছে।

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

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

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

সুতরাং আমি অন্য কিছু চেষ্টা করেছিলাম:

কোড দ্বারা উত্পন্ন কাস্টম টেবিলের সমস্ত পণ্য মেটা (পোস্ট টাইপের পণ্যের জন্য পোস্টমেটা ) নিতে আমি একটি ছোট প্লাগইন কোড করেছিলাম । এই প্লাগইনটি প্রতিটি পোস্টের জন্য সমস্ত মেটা নিয়েছিল এবং প্রতিটি মেটা কলাম হিসাবে যুক্ত করে এবং প্রতিটি সারিতে মান সন্নিবেশ করে একটি সারণী তৈরি করে। আমি EAV ফর্ম্যাটটিকে একটি অনুভূমিক, ফ্ল্যাট রিলেশনাল ফর্ম্যাটে পরিণত করেছি। আমার wp_postmetaটেবিল থেকে সমস্ত সরানো পণ্য থেকে পোস্টমেটা মুছতে প্লাগইন ছিল ।

আমি যখন সেখানে এসেছি তখন আমি সংযুক্তি পোস্টমেটা এবং অন্যান্য সমস্ত পোস্ট টাইপের মেটা তাদের নিজস্ব টেবিলে সরিয়েছি।

তারপরে আমি get_(post_type)_metaনতুন কাস্টম টেবিলগুলি থেকে সেগুলি পরিবেশন করতে মেটাডেটা পুনরুদ্ধারকে ওভাররাইড করতে ফিল্টারের দিকে ঝুঁকেছি।

এখন আগের থেকে একই ক্যোয়ারী, যা থেকে আনতে ~ 3 সেকেন্ড সময় নিয়েছিল wp_postmeta00 0.006 সেকেন্ড। সাইটটি এখন এমন আচরণ করে যেন এটি কোনও তাজা WP ইনস্টলেশন।

....................

স্বাভাবিকভাবেই, ওয়ার্ডপ্রেস উপায়ে জিনিসগুলি করা ভাল। এটি আসলে আদর্শ।

তবে এটি স্পষ্ট জ্ঞান যে EAV টেবিল স্কেলিংয়ে খুব অদক্ষ। এটি অসীম নমনীয় এবং আপনাকে যে কোনও ডেটা সঞ্চয় করতে দেয় তবে আপনি যে মূল্যটি প্রদান করেন তা হ'ল পারফরম্যান্স। এটি একটি মৌলিক বাণিজ্য বন্ধ।

সেই প্রসঙ্গে, এমন কাউকে বলা মুশকিল, যিনি হ্যাপ টন ডেটা রাখার ইচ্ছা করছেন এবং - godশ্বর নিষেধ করুন - সেই ডেটাতে কোয়েরি / অনুসন্ধান wp_postmetaনিশ্চিত করে টেবিলটি ব্যবহার করবেন। পারফরম্যান্স হিট দুর্দান্ত হবে।

আপনার কাস্টম সারণীগুলি ব্যবহার করা আপনার ডেটাটি পাইল করার অনুমতি দেয় এবং এখনও যথেষ্ট দ্রুত থেকে যায়।

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

আপনাকে অবশ্যই নিশ্চিত করতে হবে যে কোনও অন্য প্লাগইন / অ্যাডন বিকাশকারী আপনার ডেটা পুনরুদ্ধারের আগে এবং পরে আপনার ডেটা ম্যানিপুলেট করার জন্য আপনার প্লাগইনটিতে ookোকাচ্ছে। আপনি যদি তা করেন তবে আপনি বেশ শক্ত are


1
আকর্ষণীয় জিনিস! একটি বিষয় পরিষ্কার করতে হবে যে উল্লিখিত "get_ (post_type) _meta" ফিল্টারটি আসলে "get_ (মেটা-টাইপ) _ মেটাদাতা" নামে পরিচিত, যেখানে মেটা-টাইপ হয় পোস্ট, মন্তব্য বা ব্যবহারকারী user সুতরাং get_post_meta () পোস্টের ধরণ নির্বিশেষে get_post_metadata ফিল্টারটি দিয়ে যাবে। ফিল্টারটির রিটার্ন মান হ'ল আপনি চূড়ান্ত মেটা মানটি চান।
বেরেন্ড

get_ (মেটা-টাইপ) _ মেটটাটা -> প্রকৃতপক্ষে এটি সমস্ত পোস্ট ধরণের সাথে কাজ করে, এবং প্রকৃতপক্ষে চূড়ান্ত ফাংশনটি যা দেখা হয় তা হল get_post_metadata। তবে আপনি যদি তবুও ফিল্টারটি ব্যবহার করেন তখন কাজ করে।
একতা 100

2

এটি আপনি কী করছেন তার উপর নির্ভর করে। ডাব্লুপি উপায় হ'ল বিদ্যমান সারণীগুলি ব্যবহার করা, কারণ এগুলি যথেষ্ট নমনীয় হওয়ার জন্য ডিজাইন করা হয়েছে, তবে মাঝে মধ্যে আপনি একটি নতুন শ্রেণির ডেটা পৌঁছাতে পারবেন যা কোনও বিদ্যমান সারণীতে স্থাপন করা যায় না, যেমন আপনি যদি বিভাগের মেটা ডেটা চান তবে , আপনি একটি wp_termsmeta সারণী তৈরি করতে বেছে নিতে পারেন।

তবে, সাধারণত আপনি উপস্থিত থাকা বিভিন্ন টেবিলগুলিতে আপনার ডেটাটি বেশ আরামে সংরক্ষণ করতে পারেন এবং আপনি যেখানে আপনার ডেটা সঞ্চয় করেন তা আপনার প্লাগইন কী করে তার উপর নির্ভর করে।

  • সাধারণ প্লাগইন সেটিংসের জন্য, get_option () API কল ব্যবহার করুন - এটিও ক্যাশে করা হবে।
  • প্লাগইন সেটিংসের জন্য যা নির্দিষ্টভাবে একটি পৃথক পোস্টে যায়, তারপরে get_post_meta () সহ প্রতি পোস্টে কাস্টম মেটা ডেটা ব্যবহার করুন । আপনার যা প্রয়োজন তা সাধারণত এটি প্রচুর।

আপনার প্রতিক্রিয়া সময়কেও গতিময় করার জন্য ওয়ার্ডপ্রেসের মধ্যে ক্যাচিং প্রয়োগ করা হয়েছে।


1

100% ডেনিসের সাথে একমত তবে এর চারপাশে একটি উপায় আছে।

মানগুলি অনুসন্ধানের জন্য পোস্ট মেটা ব্যবহার করার ক্ষেত্রে সমস্যাগুলি যখন মানগুলির অ্যারে ইত্যাদি হয় তখন যেমন:

array(
'key1' => 'val 1',
'key2' => 'val 2'
);

এটি ডিবিতে একটি সিরিয়ালযুক্ত স্ট্রিং হিসাবে সঞ্চিত হয়, যা এরকম কিছু দেখবে:

{array["key1"]...{}...}

সুতরাং আপনি যখন সমস্ত পোস্টের সাথে কোয়েরি করতে চান array['key2'] = 'val 2'তখন ডব্লিউপিকে অ্যারে নামক প্রতিটি মেটা এন্ট্রি টানতে হবে, আনপ্যাক করে, তারপরে এটি পরীক্ষা করুন, তারপরে পরবর্তীটিতে যান। আপনার সাইটটি যদি সফল হয় এবং প্রচুর পোস্ট, পৃষ্ঠা, কাস্টম পোস্ট ইত্যাদি থাকে তবে এটি অবশ্যই আপনার সার্ভারটি নামিয়ে আনবে etc.

সমাধানটি প্রকল্পের উপর নির্ভর করে এবং আপনি কেন তা দেখতে পাবেন। আপনি যদি ডেটা সংরক্ষণ করে থাকেন var = valতবে ডাব্লু পিএইচপি প্রতিটি একক পরীক্ষার আনপ্যাক না করে পিএইচপি ছাড়াই অনুসন্ধান করতে সক্ষম হবে। উপরের দৃশ্যে এটি করতে আপনি কিছু নেমস্পেসিং ব্যবহার করবেন এবং মেটা কীগুলি সংরক্ষণ করবেন:

_array_key1 = 'val 1';
_array_key2 = 'val 2';

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

আশা করি এটি কাউকে সাহায্য করবে


0

আমার ফার্মভিল সাইটের জন্য :) আমি দুটোই করলাম তবে শেষ করিনি কারণ আমি এটি বিক্রি করেছি:

  1. আমি ফার্মভিলি এক্সএমএল পড়েছি এবং একটি কাস্টম টেবিলের মধ্যে ডেটা ফেলে দিয়েছি
  2. ওয়ার্ডপ্রেসে আমি সেই টেবিলের প্রতিটি ক্ষেত্রের জন্য স্বয়ংক্রিয়ভাবে কাস্টম ক্ষেত্রগুলি তৈরি করেছি (এবং কিছু অতিরিক্ত)
  3. টেবিলে বা অন্য দিকে কোনও মান পরিবর্তন হলে কী হবে তা নিয়ে এখনই চিন্তা করুন: কাস্টম ক্ষেত্র যেহেতু তাদের ক্রমাগত সিঙ্কে থাকা দরকার

আমি এটি করেছি কারণ আমি একদিকে ব্যবহারকারীদের নতুন ফার্মভিল ডেটা প্রবেশ করে ওয়ার্ডপ্রেস সাইটের সম্পাদনা করতে চাইছি যেমন "একটি গাভীর জন্য 10 টি মুদ্রা লাগে" তবে ইন্টিগ্রেশন দিক থেকে: তবে যদি এক্সএমএল বদলে গরুটির এখন "20 কয়েন" লাগে (ফ্রন্ট-এন্ড এডিটিং প্লাগইনের মাধ্যমে) যা তার পরে বিকল্প হিসাবে দেওয়া হবে: যাতে এক্সএমএল বা ব্যবহারকারী সঠিক ছিল (উইকি সিস্টেমের সাজান)।

সুতরাং এখানে উভয় ব্যবহার করার একটি উদাহরণ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.