একটি নতুন ডেটাবেস বনাম একটি নন-ডিবিও স্কিমা কখন ব্যবহার করবেন সে সম্পর্কে সিদ্ধান্তের মানদণ্ড


22

আমি বেশিরভাগই অ্যাপ্লিকেশন বিকাশকারী তবে আমার বর্তমান প্রকল্পের ( বিটিডাব্লু ... এটির এমএস এসকিউএল সার্ভার ২০০৮ ) সমস্ত আপ-ফ্রন্ট ডেটাবেস কাজ নিজেকে করতে হবে । প্রথম সিদ্ধান্ত হিসাবে, আমি পৃথক ডেটাবেসগুলি ব্যবহার করে বা একই ডাটাবেসে পৃথক স্কিমার ব্যবহার করে আমার রাজ্যকে বিভক্ত করব কিনা তা বের করার চেষ্টা করছি। আমি এসকিউএল সার্ভার স্কিমা এর উপর কিছুটা পড়া করেছি এবং অবজেক্ট ডোমেনগুলি পৃথক করার প্রাকৃতিক উপায়ে মনে হচ্ছে ( যা আমি পছন্দ করি ) তবে আমি নিশ্চিত নই যে এই প্যাটার্নটিতে লুকানো ব্যয় থাকতে পারে কিনা।

এই দুটি পদ্ধতির মধ্যে নির্বাচন করার সময় আমার আরও বেশি ব্যবহারিক জিনিসগুলি কী বিবেচনা করা উচিত? আমি dbo.mytableযদি পক্ষে থাকি তবে কী আমি আমার স্থাপত্যের জন্য myschema.mytableঅন্যান্য চ্যালেঞ্জ ( বা সমস্যা ) তৈরি করব?

পার্শ্ব নোট হিসাবে ... এক পর্যায়ে এটি রক্ষণ / সমর্থন বজায় রাখার জন্য একটি সত্যিকারের ডিবিএর কাছে হস্তান্তর করা হবে যাতে আমি তাদের জীবনকে আরও কঠোর না করার জন্য আমি চেষ্টা করার চেষ্টা করছি।


ডিবিও ব্যতীত স্কিমা ব্যবহারের একটি পার্শ্ব প্রতিক্রিয়া হ'ল আপনি এটি লিখতে ভুলবেন না। এটি কার্যকর করার পরিকল্পনা পুনরায় ব্যবহারের দিকে এক ধাপ।
হেনরিক স্টাউন পুলসন

উত্তর:


15

আমি স্কিমাগুলিকে ওও অর্থে নেমস্পেস বা অবজেক্ট ডোমেন হিসাবে বিবেচনা করবেন না বলে শুরু করব। স্কিমাসগুলি মূলত কিছু যুক্ত মান সহ অনুমতি পাত্রে (নীচে দেখুন)

এছাড়াও, "পৃথক স্কিমা" বা "পৃথক ডাটাবেস" 2 টি ভিন্ন ধারণা। যে ডেটা লেনদেনের এবং প্রাসঙ্গিকভাবে সামঞ্জস্যপূর্ণ হওয়া দরকার একই ডেটাবেজে থাকা দরকার। দেখুন ওয়ান ডাটাবেস বা দশ? আরও জন্য ব্লগ নিবন্ধ।

সেই ডাটাবেসে আপনি আপনার অবজেক্টগুলি সংগঠিত করার জন্য স্কিমার ব্যবহার করতে বা নাও ব্যবহার করতে পারেন।

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

পৃথক ডাটাবেসের ক্ষেত্রে মামলার জন্য, হারুনের উত্তর দেখুন , তবে এই সমস্ত "লেনদেনের এবং প্রাসঙ্গিকভাবে সামঞ্জস্যপূর্ণ" প্রয়োজনীয়তার উপর জড়িত।


9

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

  1. আপনার অ্যাপ্লিকেশনটি একটি প্রাসঙ্গিক-নির্দিষ্ট ডাটাবেসের সাথে সংযুক্ত করা এবং তারপরে একই প্রশ্নগুলি চালানো সমস্ত বিষয়বস্তুর <schema>রেফারেন্সের সামনে আপনার প্রশ্নগুলি ইনজেক্ট করার চেয়ে অনেক সহজ । এটি নিজেই হয় প্রচুর গতিশীল এসকিউএলকে, ডিফল্ট স্কিমার সাথে প্রচুর পরিমাণে বিভিন্ন অ্যাপ্লিকেশন লগিন (অর্থাত আপনার কোডটি স্কিমার উপসর্গ ব্যবহার করবে না, অ্যাপ্লিকেশন ব্যবহারকারীর ডিফল্ট স্কিমার উপর নির্ভর করবে - বিশাল পরিকল্পনার ক্যাশে ব্লাট এবং কঠিন ডিবাগিং করতে পারে), বা পরিচালনা করার জন্য প্রচুর পরিমাণে সঞ্চিত পদ্ধতি (চিত্রের জন্য কেবল একটি সরল প্রতিবেদন চিত্র, আপনার যদি স্কিমা প্রতি একটির প্রয়োজন হয়, তবে কোড পরিবর্তন হয়, এখন আপনাকে প্রতিটি স্কিমার জন্য একবারে একই কোডটি একাধিকবার পরিবর্তন করতে হবে)।
  2. ডাটাবেস দ্বারা পৃথক করা আপনাকে ব্যস্ত ডেটাবেসগুলিকে দ্রুত বা বিভিন্ন স্টোরেজ / দৃষ্টান্তগুলিতে সরিয়ে ফেলতে নমনীয়তাটিকে এক বৃহত সমস্ত-পরিবেষ্টনকারী ডেটাবেসের বাইরে বস্তুগুলি ছিঁড়ে না ফেলে মঞ্জুরি দেয়। বেশিরভাগ লোকেরা এ সম্পর্কে আগে থেকে চিন্তা করে না, তবে এটি অবশ্যই একটি সম্ভাব্য স্কেল সমস্যা। বিশেষত যদি আপনার একটি স্কিমা শেষ হয় যা "দখল করে নেয়" এবং সার্ভারের বেশিরভাগ সংস্থান প্রয়োজন, তাদের ভাগ করা খুব জটিল কাজ হতে পারে, এমনকি যদি তারা ইতিমধ্যে স্কিমা দ্বারা পৃথক করা থাকে।
  3. পৃথক ডাটাবেসগুলি আপনাকে প্রতিটি বিভাগের জন্য বিভিন্ন রক্ষণাবেক্ষণ এবং ব্যাকআপ শিডিয়ুলও রাখতে দেয়। "রাষ্ট্র দ্বারা বিভাজন" বলতে আপনার অর্থ কী তা আমি নিশ্চিত নই তবে ধরে নিচ্ছি আপনি গ্রাহকদের বিচ্ছিন্ন করার অর্থ আপনার কাছে গ্রাহকরা বিভিন্ন প্রয়োজনীয়তা এবং ডেটা হ্রাস, সূচক রক্ষণাবেক্ষণ ইত্যাদির জন্য বিভিন্ন সহনশীলতা থাকতে পারেন may
  4. আপনি গ্রাহকদের সাথে শেষ করতে পারেন, আইন অনুসারে বা কর্পোরেট নীতি অনুসারে, আপনার ডেটা অন্য কারও থেকে আলাদা রাখা আপনার দরকার need এটি সাধারণত ডাটাবেস স্তরে গ্রহণযোগ্য, তবে স্কিমা স্তরটি সাধারণত অপর্যাপ্ত হতে চলেছে। আপনার এখন এই গ্রাহক নাও থাকতে পারে তবে আপনি যদি এটি করেন তবে পরে এটি একটি আসল সমস্যা হয়ে উঠতে পারে।

3
সুবর্ণ প্রশ্নটি এখন "সমস্ত ডেটা লেনদেনিকভাবে এবং রেফারেন্সালি সুসংগত"? আমি এখনই ধরে নিয়েছি এবং আপনার উত্তরটির জন্য এটি সঠিক
জিবিএন

@gbn এটি সত্যিই একটি ভাল প্রশ্ন এবং কিছু করার জন্য আমাকে কোনও পথে যাওয়ার আগে কিছুটা চিন্তা করা দরকার।
জোজিকি

@ অ্যারনবার্ট্র্যান্ড এটি আকর্ষণীয় ... আমার মনে হচ্ছে সামান্য সামর্থ্য পরিকল্পনা করা দরকার, এবং দেখুন যেখানে স্কেলিংয়ের সমস্যা উত্থাপিত হতে পারে। যদি স্কেলিং অনুভূমিকভাবে উপযুক্ত হয়, তবে পৃথক ডাটাবেসগুলি কি ভাল পছন্দ হতে পারে? অন্যথায়, আমি অন্যান্য নিদর্শন বিবেচনা করতে হবে।
জোজিকি

2
@ জোজিকি: "লেনদেনের ভিত্তিতে এবং প্রাসঙ্গিকভাবে সামঞ্জস্যপূর্ণ" সাপেক্ষে, একটি একক ডাটাবেস ফাইলগ্রুপের সাহায্যেও ছোট করা যায়। যাইহোক, আপনার ব্যবহারের কেসের ভিত্তিতে আপনার কাছে দুটি বৈধ আনসার রয়েছে। দুটিও ভুল নয়।
gbn
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.