আপনার গাইডিং নীতিটি নিজেকে পুনরাবৃত্তি করবেন না এমন হওয়া উচিত :
সফটওয়্যার ইঞ্জিনিয়ারিংয়ে, ডোন্ট রিপিট ইয়ুয়ারসফ্রন্ট (ডিআরওয়াই) হ'ল সফটওয়্যার বিকাশের একটি মূলনীতি, যা বহু ধরণের আর্কিটেকচারে বিশেষত দরকারী সকল ধরণের তথ্যের পুনরাবৃত্তি হ্রাস করার লক্ষ্যে। ডিআরওয়াই নীতিটি হিসাবে বর্ণিত হয়েছে "জ্ঞানের প্রতিটি অংশের অবশ্যই কোনও সিস্টেমের মধ্যে একটি একক, দ্ব্যর্থহীন, অনুমোদনমূলক প্রতিনিধিত্ব থাকতে হবে।"
আপনার অ্যাপ্লিকেশন এবং আপনার ডেটা স্টোরেজ (গুলি) এর মধ্যে স্বাচ্ছন্দ্যে বসে, ORM মূলত একটি অতিরিক্ত স্তর (বা আপনি যদি পছন্দ করেন তবে স্তর) হয়। আপনার প্রতিবন্ধকতাগুলি এক জায়গায় এবং কেবলমাত্র এক জায়গায় হওয়া উচিত, এটি ORM বা ডেটা স্টোরেজ হওয়া উচিত, অন্যথায় শীঘ্রই আপনি তাদের বিভিন্ন সংস্করণ বজায় রেখে শেষ করবেন। আপনি সত্যিই এটি করতে চান না।
যাইহোক, অনুশীলনে, বেশিরভাগ অর্ধেক শালীন ORM গুলি আপনার ডেটা স্কিমা থেকে স্বয়ংক্রিয়ভাবে আপনার মডেলগুলি তৈরি করে। যদিও এখনও সদৃশ রয়েছে, প্রতিবার একই অনুরূপ অনুসরণ করে সদৃশ ওআরএম কোড তৈরি হওয়ায় রক্ষণাবেক্ষণের নরকের সম্ভাবনা খুব কম। এটি কোনও সদৃশ কোড না রাখাই আদর্শ হবে তবে স্বয়ংক্রিয়ভাবে উত্পন্ন সীমাবদ্ধতাগুলি পরের সেরা জিনিস।
এছাড়াও, একই জায়গায় আপনার সীমাবদ্ধতা থাকার নয় অগত্যা মানে তোমার উচিত ছিল সব একই জায়গায় আপনার সীমাবদ্ধতা। কিছু, যেমন রেফারেন্সিয়াল অখণ্ডতার সীমাবদ্ধতার মতো ডেটা সঞ্চয় করার জন্য আরও উপযুক্ত হতে পারে (তবে আপনি যদি অন্য কোনও ডেটা স্টোরেজ এ চলে যান তবে হারিয়ে যেতে পারে), এবং কিছু, বেশিরভাগই যা জটিল ব্যবসায়িক যুক্তি সম্পর্কিত, আপনার ওআরএমের জন্য আরও উপযুক্ত। আপনার সমস্ত আপেল একই ঝুড়িতে রাখা ভাল but
ব্যর্থতাসমূহ
আপনি ORM ব্যর্থতার কথা উল্লেখ করেছেন। এটি আপনার প্রশ্নের সাথে একেবারেই অপ্রাসঙ্গিক, আপনার আবেদনের ওআরএম এবং ডেটা স্টোরেজ (গুলি) কে একক সত্তা হিসাবে ভাবা উচিত। তা করতে ব্যর্থ হলে, এটা ব্যর্থ হয়েছে, ORM বাইপাস তথ্য সংগ্রহের সাথে কথা বলতে সরাসরি না একটি ভাল ধারণা।
অন্য যে কোনও কিছুর জন্য ওআরএম বাইপাস করা
এছাড়াও একটি ভাল ধারণা না। তবে এটি বিভিন্ন কারণে ঘটতে পারে:
ওআরএম চালু হওয়ার আগে নির্মিত অ্যাপ্লিকেশনটির উত্তরাধিকার অংশগুলি।
এটি একটি শক্ত সমস্যা এবং ঠিক এখনই আমি যে পরিস্থিতিটি নিয়ে কাজ করছি ঠিক সেজন্য আমার "রক্ষণাবেক্ষণ নরক" এর নিয়মিত পুনরাবৃত্তি। হয় আপনি নন ওআরএম অংশগুলি বজায় রাখছেন, অথবা আপনি ওআরএম ব্যবহারের জন্য সেগুলি পুনরায় লিখুন। দ্বিতীয় বিকল্পটি প্রাথমিকভাবে আরও বোধগম্য হতে পারে তবে এটি এমন একটি সিদ্ধান্ত যা আপনার অ্যাপ্লিকেশনটির সেই অংশগুলি ঠিক কী করে চলেছে এবং দীর্ঘ মেয়াদে একটি সম্পূর্ণ পুনর্লিখন কতটা মূল্যবান হতে পারে তার উপর নির্ভর করে।
খারাপভাবে ডিজাইন করা 2 * 10 ^ 8 টি সারি মাইএসকিউএল টেবিলের (ডাউনটাইম ছাড়াই) কোনও কী পরিবর্তন করার চেষ্টা করুন এবং আপনি বুঝতে পারবেন আমি কোথা থেকে আসছি।
অ্যাপ্লিকেশনটির অ-উত্তরাধিকার অংশগুলির জন্য যা সম্পূর্ণরূপে সরাসরি ডেটা স্টোরেজে কথা বলতে হয়:
এমনকি কৌতুকপূর্ণ। ওআরএম হ'ল অভিনব সরঞ্জাম, এবং তারা প্রায় সবকিছুর যত্ন নেয় তবে কখনও কখনও তারা কেবল পথে আসে এমনকি একেবারে অকেজো। গুঞ্জনধ্বণিতে (buzzphrase সত্যিই) হল অবজেক্ট রিলেশনাল ইম্পিডেন্স মেলেনি , সহজভাবে করা এটি আপনার ORM করতে সম্ভব টেকনিক্যালি না সবকিছু আপনার রিলেশনাল ডাটাবেস করে, এবং স্টাফ তারা কিছু, একটি উল্লেখযোগ্য কর্মক্ষমতা শাস্তি আছে।
মন্তব্য
ডেটা অখণ্ডতার দিক থেকে, ডাটাবেসে সীমাবদ্ধতা থাকা আবশ্যক এবং অ্যাপ্লিকেশনটিতে থাকা উচিত। আপনার অ্যাপ্লিকেশনটি কোনও ওয়েব এবং একটি ডেস্কটপ অ্যাপ্লিকেশন, বা একটি মোবাইল অ্যাপ্লিকেশন, বা ওয়েবসার্ভিস থেকে অ্যাক্সেস করা থাকলে কী হবে? - লুইজ দামিম
এটি হ'ল অতিরিক্ত স্তর যুক্ত করা অত্যন্ত সহায়ক হবে এবং আমরা যদি কোনও ওয়েব অ্যাপ্লিকেশন সম্পর্কে কথা বলি তবে আমি একটি রেস্ট এপিআই দিয়ে যাব। এর জন্য অতিমাত্রায় সরল নকশাটি হ'ল :
ওআরএম এপিআই এবং ডেটা স্টোরেজের মধ্যে বসবে এবং এপিআই এর পিছনে থাকা সমস্ত কিছু (এটি সহ) বিভিন্ন অ্যাপ্লিকেশন থেকে একক সত্তা হিসাবে বিবেচিত হবে।