কখন ওআরএম ব্যবহার করবেন না এবং সঞ্চিত পদ্ধতি পছন্দ করবেন?


13

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

আমি জানতে চাই যে কখন সঞ্চিত প্রক্রিয়া / ট্রিগার এবং তদ্বিপরীত থেকে ওআরএম ব্যবহার করবেন না।


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

উত্তর:


16

ORMs (অবজেক্ট-রিলেশনাল ম্যাপিং) স্টোরেড পদ্ধতিগুলির সাথে পারস্পরিক একচেটিয়া নয়। বেশিরভাগ ওআরএম সঞ্চিত পদ্ধতি ব্যবহার করতে পারে। আপনি যদি এটি চয়ন করেন তবে বেশিরভাগ ORMs সঞ্চিত পদ্ধতি তৈরি করে। সুতরাং এটি সমস্যা হয় না হয়।

ORM গুলি অগ্রহণযোগ্য এসকিউএল উত্পন্ন করতে পারে (পারফরম্যান্সের দিক দিয়ে) এবং আপনি মাঝে মাঝে সেই এসকিউএলটিকে হস্ত-নকশিত এসকিউএল দিয়ে ওভাররাইড করতে চাইতে পারেন। এটি সম্পাদনের অন্যতম উপায় হ'ল এসপি (সঞ্চিত পদ্ধতি) ব্যবহার করে।

ডটনেটে, সঞ্চিত পদ্ধতি ব্যবহার করবেন না যদি:

  • আপনি যদি সঞ্চিত পদ্ধতিগুলির সাথে পরিচিত না হন (আপনার ক্ষেত্রে নয়, তবে সম্পূর্ণতার জন্য অন্তর্ভুক্ত)।

  • যদি আপনি জটিলতার একটি স্তর এবং আপনার প্রকল্পের দক্ষতার পরিচয় দিতে না চান।

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

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

সুরক্ষা (উদাহরণস্বরূপ এসকিউএল ইঞ্জেকশন প্রতিরোধের জন্য) এবং তাদের দাবী করা গতির জন্য কিছু কারণে কোডে এসকিউএল এর চেয়ে বেশি স্টোরড পদ্ধতি ব্যবহার করা পছন্দ করে। তবে এটি কিছুটা বিতর্কযোগ্য এবং এর জন্য বিশদ আলোচনা দরকার।

যদি আপনার ওআরএম সঞ্চিত প্রক্রিয়া তৈরি করতে না পারে এবং আপনাকে একটি বৃহত সিস্টেম লিখতে হয় তবে আপনার কেসের উপর ভিত্তি করে আপনার অতিরিক্ত হাত কোডিংয়ের ওজন করতে হবে।


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

@ মাইনমা, আপনার মন্তব্যের জন্য ধন্যবাদ। আমার উপলব্ধি হ'ল এসপি ব্যবহার করে এম্বেড থাকা প্যারামিটারগুলির সাথে প্যারামিটারাইজড স্টোরেজ
পোস্টস /

2
সঞ্চিত পদ্ধতিগুলি স্ক্যুয়াল ইনজেকশন আক্রমণগুলির দুর্বলতায় কার্যত কোনও প্রভাব ফেলেনি। পুরানো কল্পকাহিনী হার্ড মারা যায়।
রিগ

@ রিগ 1, আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ, আপনি এই সম্পর্কে কী ভাবেন সে সম্পর্কে আমি আরও জানতে চাই। আমার বোধগম্যতা এই পাঠ্য থেকে এসেছে (কমপক্ষে): "আপনি সঞ্চিত পদ্ধতি এবং প্যারামিটারাইজড কমান্ডগুলি ব্যবহার করে, গতিশীল এসকিউএল এড়ানো এবং সমস্ত ব্যবহারকারীর অনুমতি অনুমতি সীমাবদ্ধ করে এসকিউএল সার্ভার ইঞ্জেকশন আক্রমণকে ব্যর্থ করতে পারেন।" যে দেখা msdn.microsoft.com/en-us/library/bb669057.aspx
NoChance

@ এমদাদ কারিম প্যারামিটারাইজড এসকিউএল এটি নিরাপদ করার জন্য একটি বড় পদক্ষেপ। আমি মনে করি এই লোকটি একটি যুক্তিসঙ্গত কেস প্লেপারস করে তোলে p প্লাইন্ট . com/issues/2006 জুন / ইনজেকশন-স্টোরড- প্রসিকিউরগুলি । এটির অনুসন্ধানে "স্টোরেড প্রসেসার এসকিউএল ইঞ্জেকশন" প্রচুর হিট হয়ে উঠবে। আপনার ইনপুটগুলি স্যানিটাইজ করা সর্বদা ভাল এবং প্রচুর প্ল্যাটফর্ম যুক্তিসঙ্গতভাবে এটি করার জন্য একটি বিল্ট সরবরাহ করে।
রিগ

13

ORMs প্রায়শই ধরে নেন যে ওআরএম পরিবেশন করার জন্য ডাটাবেস উপস্থিত রয়েছে। তবে সাধারণত সংস্থাটি পরিবেশন করার জন্য ডাটাবেস উপস্থিত থাকে, যার একাধিক ভাষায় লেখা কয়েকশ ও অ্যাপ্লিকেশন এতে লিপ্ত হতে পারে।

তবে আপনি যদি কেবল এমন কোনও ওআরএম ব্যবহার করেন যা কোনও সঞ্চিত পদ্ধতিতে কল করতে পারে না তবে এটি কেবল "ওআরএম বনাম সঞ্চিত প্রক্রিয়াগুলির" একটি ক্ষেত্রে। অন্যথায়, ব্যবসায়ের যুক্তিটি কোথায় কোড করবেন তা সিদ্ধান্ত নেওয়ার ঘটনা এটি।

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

আপনি যদি "দুর্ভেদ্য" ডাল ব্যবহার করেন তবে ডিবিএমএস কমান্ড-লাইন ইন্টারফেস থেকে সাবধান থাকুন।


4
আমি একাধিক ক্ষেত্রে গিয়েছি যেখানে বিদ্যমান লিগ্যাসি অ্যাপ্লিকেশনগুলির কারণে পুরানো এসপি এবং ট্রিগারগুলি নতুন অ্যাপ্লিকেশনগুলির সাথে ব্যবহার করতে হয়েছিল। সুবিধাটি হ'ল এই ব্যবসায়ের যুক্তি কেবল এক জায়গায় বজায় রাখতে হবে।
jfrankcarr

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

-1

সাধারণ প্রশ্ন -> ওআরএম

জটিল প্রশ্ন -> সঞ্চিত পদ্ধতি


3
একটি সাধারণ ক্যোয়ারী থেকে একটি জটিল বিচ্ছিন্নতা কোথায়,
স্বতন্ত্র

-2

ট্রিগারটি রেকর্ডের আক্রমণকারী হিসাবে ব্যবহার করা উচিত বা গুরুত্বপূর্ণ ব্যবসায়িক বিধি, আইএমএইচও হতে পারে।

গুরুর সমস্যা:

  1. আপনার প্রতি টেবিল প্রতি অনুমতিগুলি নির্ধারণ করা উচিত, "ক্রিয়া" প্রতি নয় (আমার অর্থ এসপি)
  2. আপনার সমাধানের যুক্তি পরিবর্তন করতে আপনাকে আপনার অ্যাপ্লিকেশনটির অভ্যন্তর কোডটি পরিবর্তন করতে হবে এবং তারপরে ক্লায়েন্টদের জন্য নেটওয়ার্কে এটি পুনরায় বিতরণ করতে হবে

-5

একমত নন। আপনি যদি এসকিউএল জানেন তার চেয়ে ওআরএম আরও ভাল জানেন তবে ORM ক্যোয়ারী কেবল সহজ। ORM এর ফলাফল আরও অনেক বেশি কোড, আইএমও বজায় রাখা আরও বেশি কঠিন। কেবলমাত্র ওআরএম থেকে যারা উপকৃত হন তারা হ'ল ওআরএম (যেমন মাইক্রোসফ্ট) বিক্রয়কারী সংস্থার অংশীদার।


1
এই মর্মে যে মতামত প্রকাশিত হয়েছে তার জন্য অত্যন্ত মমত্ববোধটি রেফারেন্স দ্বারা বা অভিজ্ঞতার দ্বারা ব্যাক আপ হয় না। ফলস্বরূপ, এটি এমন পাঠকের পক্ষে অকেজো হবে যে কোনও "বিপরীত" দাবিতে হোঁচট খেতে পারে যেমন সঞ্চিত পদ্ধতিগুলি কেবল ডিবি বিক্রেতাদেরই উপকৃত হয় । এক বুঝতে কেন নির্দেশিকা তোলে রিয়াল প্রশ্নাবলি উত্তর আছে বলে: "বাস্তব প্রশ্ন থাকে উত্তর , না আইটেম বা ধারনা বা মতামত ... "
মশা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.