আমার প্রশ্নের একটিতে এই মন্তব্যের পরে , আমি ভাবছি এটি এক্স স্কিমাস বা এর বিপরীতে একটি ডেটাবেস ব্যবহার করা ভাল।
আমার পরিস্থিতি: আমি একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করছি যেখানে লোকেরা নিবন্ধভুক্ত হয় তখন আমি একটি ডাটাবেস তৈরি করি (না, এটি কোনও সামাজিক নেটওয়ার্ক নয়: প্রত্যেকেরই নিজের ডেটা অ্যাক্সেস করতে হবে এবং অন্য ব্যবহারকারীর ডেটা কখনই দেখতে পাবে না) ।
আমি আমার অ্যাপ্লিকেশনটির পূর্ববর্তী সংস্করণটির জন্য এটি ব্যবহার করেছি (এটি এখনও মাইএসকিউএলে চলছে): প্রতিটি রেজিস্ট্রেশনের জন্য প্লেস্ক এপিআইয়ের মাধ্যমে আমি করি:
- সীমিত সুযোগ-সুবিধা সহ একটি ডাটাবেস ব্যবহারকারী তৈরি করুন;
- এমন একটি ডাটাবেস তৈরি করুন যা কেবলমাত্র আগের তৈরি ব্যবহারকারী এবং সুপারভাইজার (রক্ষণাবেক্ষণের জন্য) অ্যাক্সেস করতে পারে
- ডেটাবেস পপুলেট করুন
এখন, পোস্টগ্র্রেএসকিউএল (প্রকল্পটি পরিণত হচ্ছে এবং মাইএসকিউএল ... সমস্ত প্রয়োজনীয়তা পূরণ করবেন না) এর সাথেও আমার একই কাজ করা দরকার।
আমার কাছে সমস্ত ডাটাবেস / স্কিমার ব্যাকআপগুলি থাকা দরকার: pg_dump উভয় উপায়েই পুরোপুরি কাজ করে এবং কেবলমাত্র একটি স্কিমা বা একটি ডাটাবেস অ্যাক্সেস করতে কনফিগার করা যায় এমন ব্যবহারকারীদের জন্য একই।
সুতরাং, ধরে নিচ্ছি যে আপনি আমার চেয়ে অভিজ্ঞ পোস্টগ্রিএসকিউএল ব্যবহারকারী, আমার পরিস্থিতি সবচেয়ে ভাল সমাধান বলে আপনি কী মনে করেন এবং কেন?
Sche x স্কিমার পরিবর্তে database x ডাটাবেস ব্যবহার করে পারফরম্যান্সের পার্থক্য থাকবে? এবং ভবিষ্যতে (নির্ভরযোগ্যতা) বজায় রাখার জন্য কী সমাধান ভাল হবে?
আমার সমস্ত ডাটাবেস / স্কিমার সর্বদা একই কাঠামো থাকবে!
ব্যাকআপ ইস্যুগুলির জন্য (পিজি_ডাম্প ব্যবহার করে) সম্ভবত একটি ডেটাবেস এবং অনেক স্কিমা ব্যবহার করা আরও ভাল, সমস্ত স্কিমাকে একবারে ডাম্প করা: পুনরুদ্ধার করা খুব সহজ হবে একটি ডেভলপমেন্ট মেশিনে মূল ডাম্প লোড করা এবং তারপরে প্রয়োজনীয় স্কিমাকে ডাম্প এবং পুনরুদ্ধার করা হবে: সেখানে এটি একটি অতিরিক্ত পদক্ষেপ, তবে সমস্ত স্কিমাকে এক এক করে ডাম্প করার চেয়ে দ্রুত মনে হয় dump
আপডেট 2012
ঠিক আছে, গত দুই বছরে অ্যাপ্লিকেশন কাঠামো এবং নকশা এত বেশি পরিবর্তিত হয়েছে। আমি এখনও one db with many schemas
পন্থাটি ব্যবহার করছি , তবে এখনও আমার কাছে আমার অ্যাপ্লিকেশনটির প্রতিটি সংস্করণের জন্য একটি ডাটাবেস রয়েছে :
Db myapp_01
\_ my_customer_foo_schema
\_ my_customer_bar_schema
Db myapp_02
\_ my_customer_foo_schema
\_ my_customer_bar_schema
ব্যাকআপগুলির জন্য, আমি প্রতিটি ডাটাবেস নিয়মিত ডাম্প করছি এবং তারপরে বিকাশগুলি সার্ভারে সরাচ্ছি moving
আমি পিআইটিআর / ওয়াল ব্যাকআপটিও ব্যবহার করছি তবে, যেমনটি আমি আগেই বলেছিলাম, সম্ভবত আমাকে একবারে সমস্ত ডাটাবেস পুনরুদ্ধার করতে হবে না ... তাই সম্ভবত এটি এই বছর বরখাস্ত করা হবে (আমার পরিস্থিতিতে সেরা পদ্ধতির নয়) )।
ওয়ান-ডিবি-মাল্টি-স্কিমা পদ্ধতির জন্য এখন থেকে আমার পক্ষে খুব ভাল কাজ হয়েছে, এমনকি যদি অ্যাপ্লিকেশন কাঠামো পুরোপুরি পরিবর্তিত হয়:
আমি প্রায় ভুলে গেছি: আমার সমস্ত ডাটাবেস / স্কিমার সর্বদা একই কাঠামো থাকবে!
... এখন, প্রতিটি স্কিমাটির নিজস্ব কাঠামো রয়েছে যা ব্যবহারকারীর ডেটা প্রবাহকে পরিবর্তনশীলভাবে পরিবর্তন করে।