আমার মাল্টি-সার্ভার আরডিবিএমএস বা আমার অ্যাপ্লিকেশনটির রেফারেন্সিয়াল ইন্টিগ্রিটি হ্যান্ডেল করা উচিত?


16

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

আমরা একাধিক সার্ভার / ডাটাবেস বিস্তৃত করার একটি সুযোগ রয়েছে এবং আমি মনে করি না যে সংযুক্ত সার্ভারগুলিতে বিদেশী কীগুলি ব্যবহার করা যেতে পারে। এটি ছাড়াও, ডাটাবেস ডিজাইনে কিছু বিজ্ঞপ্তি উল্লেখ রয়েছে যা আমাকে ON UPDATE CASCADEসমস্ত কিছু ব্যবহার করতে বাধা দেয় ।

ডাটাবেসটি এমএস এসকিউএল 2005 (সম্ভবত ২০০৮) এবং এর সাথে সমস্ত মিথস্ক্রিয়া অ্যাপ্লিকেশনটির মাধ্যমে হওয়া উচিত।


3
আরডিবিএমএস না ব্যবহার করার আমি কল্পনা করতে পারি না বলে আমার এখানে কিছু শেখার আছে have
bigtang

উত্তর:


10

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

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

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


5

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


1

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


1

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


1

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

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

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