ওআরএম ডেটাবেস ডি-নরমালাইজেশন প্রচার করে?


14

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

যদিও এটি ওআরএম যন্ত্রপাতিটিকে সহজতর করে, এটি আমার কাছে খারাপ ডাটাবেস ডিজাইনের পরামর্শ দেয়। এই খারাপ নকশা নিদর্শন একটি ডাটাবেস প্রয়োগ করতে?

উত্তর:


4

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

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

এক আকার নিয়ে সমস্ত পদ্ধতির সাথে মানানসই ORM অধ্যবসায় গ্রন্থাগারগুলি প্রায়শই সর্বদা যে কোনও অবস্থার জন্য একটি অপ-অনুকূল ডেটাবেস কাঠামো তৈরি করে এবং এমন একটি পরিস্থিতি ব্যবহার করে যা কোনও নির্দিষ্ট পরিস্থিতিতে খারাপ অভ্যাস হিসাবে দেখা যায় ।

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

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

তবে আপনাকে যা মনে রাখতে হবে তা হ'ল তারা ডেটাবেস কর্মক্ষমতা বা ডেটা অখণ্ডতার জন্য অনুকূলিত করার লক্ষ্যে নয়, তারা উন্নয়নের গতির জন্য অনুকূলিত । যদি আপনার উপাত্তের নির্দিষ্ট কাঠামোটি আপনার পক্ষে গুরুত্বপূর্ণ হয় তবে আপনাকে নিজের হাত / আইডিবিএমএস ম্যাপিংগুলি হাতে হাতে কোডিং করতে হবে, বা খুব কমপক্ষে সমস্ত গ্রন্থাগারগুলির বিশদ মূল্যায়ন করতে হবে এবং আপনার প্রয়োজনগুলি সবচেয়ে ঘনিষ্ঠভাবে পূরণ করে এমন একটি নির্বাচন করুন ( যদি একটি বিদ্যমান থাকে)।

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


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

7

থাম্বের নিয়ম হিসাবে, বিকাশকারীর প্রয়োজন মেটাতে কখনই আপনার ডেটা মডেল করবেন না (এর জন্য আপনি ভিউ বা স্প ব্যবহার করতে পারেন, তবে ডেটা মডেল নয়)।

ডেটা মডেলটি অ্যাপ্লিকেশন এবং কর্মক্ষমতা প্রয়োজনের ব্যবসায়ের নিয়মের ভিত্তিতে হওয়া উচিত।


6

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

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

সুতরাং আমার উত্তর: না, আমি এটি মনে করি না । এটি সম্ভবত অন্যান্য উপায়ে সম্ভবত, একটি ভাল ওআরএম হ'ল ভাল ডাটাবেস ডিজাইনকে উত্সাহ দেয় , কমপক্ষে যাদের অভিজ্ঞতা খুব কম।


1
এবং অনেকগুলি ওআরএম বহু-টেবিলের উত্তরাধিকারে সক্ষম: উদাহরণস্বরূপ (এন) হাইবারনেট এবং রআর অ্যাক্টিভেকর্ড করুন।
আরএসএনএ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.