আমি এসকিউএল সার্ভার ২০০৮ বাইবেলের মাধ্যমে পড়ছি এবং আমি ভিউ বিভাগটি কভার করছি। কিন্তু লেখক সত্যই মতামতের উদ্দেশ্য ব্যাখ্যা করে না । দর্শনের জন্য ভাল ব্যবহার কী? আমার এগুলি কি আমার ওয়েবসাইটে ব্যবহার করা উচিত এবং সেগুলির সুবিধা কী?
আমি এসকিউএল সার্ভার ২০০৮ বাইবেলের মাধ্যমে পড়ছি এবং আমি ভিউ বিভাগটি কভার করছি। কিন্তু লেখক সত্যই মতামতের উদ্দেশ্য ব্যাখ্যা করে না । দর্শনের জন্য ভাল ব্যবহার কী? আমার এগুলি কি আমার ওয়েবসাইটে ব্যবহার করা উচিত এবং সেগুলির সুবিধা কী?
উত্তর:
পূর্ববর্তী উত্তরগুলির কোনও উল্লেখ না করা বলে মনে হয় এমন আর একটি ব্যবহার হ'ল টেবিল কাঠামোর পরিবর্তনের সহজ স্থাপনা।
বলুন, আপনি T_OLDসক্রিয় ব্যবহারকারীদের জন্য ডেটাযুক্ত একটি টেবিলটি ( ) অবসর নিতে চান এবং পরিবর্তে একই জাতীয় ডেটা (নামযুক্ত T_NEW) সহ একটি নতুন টেবিল ব্যবহার করুন তবে একটি অতিরিক্ত কলাম সহ সক্রিয় এবং নিষ্ক্রিয় ব্যবহারকারীর উভয়ের জন্য ডেটা রয়েছে এমন একটি রয়েছে active।
আপনার সিস্টেমে যদি গাজিলিয়ান কোয়েরি করে থাকে তবে আপনার SELECT whatever FROM T_OLD WHERE whateverকাছে রোল আউটের জন্য দুটি পছন্দ রয়েছে:
1) কোল্ড তুরস্ক - ডিবি পরিবর্তন করুন এবং একই সাথে কোয়েরিতে থাকা অসংখ্য কোডের টুকরোটি পরিবর্তন, পরীক্ষা করুন এবং প্রকাশ করুন। করা খুব কঠিন (বা এমনকি সমন্বয় করা) খুব ঝুঁকিপূর্ণ। খারাপ
2) ধীরে ধীরে - তৈরি করে ডিবি পরিবর্তন T_NEWটেবিল ড্রপ T_OLDটেবিল এর পরিবর্তে একটি তৈরি দেখুন নামক T_OLDযে নকল T_OLDটেবিল 100% (যেমন দৃশ্য ক্যোয়ারী হয় SELECT all_fields_except_active FROM T_NEW WHERE active=1)।
এটি আপনাকে বর্তমানে যে কোনও কোড নির্বাচন করে যা এখান থেকে নির্বাচন করে এবং অবসর সময়ে T_OLDকোডটি স্থানান্তরিত করতে পরিবর্তনগুলি এড়াতে সহায়তা করবে ।T_OLDT_NEW
এটি একটি সহজ উদাহরণ, আরও অনেকগুলি জড়িত রয়েছে।
পিএস অন্যদিকে, আপনার সম্ভবত সরাসরি জিজ্ঞাসার পরিবর্তে কোনও সঞ্চিত প্রক্রিয়া এপিআই থাকা উচিত ছিল T_OLD, তবে এটি সর্বদা ক্ষেত্রে হয় না।
(গুগল অনুসন্ধানে উঠে আসা প্রথম টিউটোরিয়ালটি অনুলিপি করেছেন (লিঙ্কটি এখন মৃত), তবে আমি নিজে নিজে টাইপ করে যাব এমন সমস্ত সুবিধা রয়েছে))
দর্শনগুলির নিম্নলিখিত সুবিধা রয়েছে:
- সুরক্ষা - অন্তর্নিহিত টেবিলগুলি সরাসরি অ্যাক্সেসযোগ্য নয় এমন সময়ে ব্যবহারকারীদের জন্য দর্শনগুলি অ্যাক্সেসযোগ্য করা যায়। এটি একই টেবিলে থাকা অন্যান্য ডেটা সুরক্ষিত করার সময় ডিবিএ ব্যবহারকারীদের কেবল তাদের প্রয়োজনীয় ডেটা দেওয়ার অনুমতি দেয়।
- সরলতা - ভিউগুলি জটিল প্রশ্নগুলি আড়াল করতে এবং পুনরায় ব্যবহার করতে ব্যবহার করা যেতে পারে।
- কলামের নাম সরলকরণ বা স্পষ্টকরণ - দৃশ্যের নামগুলি আরও স্মরণীয় এবং / বা অর্থবহ করার জন্য কলামের নামগুলিতে উপকরণ সরবরাহ করতে ব্যবহার করা যেতে পারে।
- স্টেপিং স্টোন - ভিউগুলি "মাল্টি-লেভেল" ক্যোয়ারিতে একটি স্টেপিং পাথর সরবরাহ করতে পারে। উদাহরণস্বরূপ, আপনি একটি ক্যোয়ারির একটি ভিউ তৈরি করতে পারেন যা প্রতিটি বিক্রয়কর্মীর কতগুলি বিক্রয় বিক্রয় রয়েছে তা গণনা করে। তারপরে আপনি সেই ভিউটি বিক্রয়কর্মীদের যে পরিমাণ বিক্রয় করেছেন সেগুলি দ্বারা গোষ্ঠীভুক্ত করতে পারেন।
উইকিপিডিয়া থেকে কিছু কারণ :
দর্শনগুলি টেবিলগুলির উপর সুবিধা প্রদান করতে পারে:
দৃশ্যগুলি SELECT / CODE এর পুনরায় ব্যবহারযোগ্য বিভাগ হিসাবে ব্যবহার করা যেতে পারে, এতে যোগদানের জন্য অন্যান্য নির্বাচন / প্রশ্নগুলিতে অন্তর্ভুক্ত থাকতে পারে এবং প্রতিবার পুরো নির্বাচনটি পুনরায় তৈরি না করে বিভিন্ন ফিল্টার ব্যবহার করা যেতে পারে।
এটি একটি একক লোকেশনে যুক্তিও রাখে, যাতে আপনাকে কোডের ভিত্তিতে এটি পরিবর্তন করতে না হয়।
একটু দেখো
সঞ্চিত পদ্ধতি, ফাংশন, দর্শন, ট্রিগার, ইনলাইন এসকিউএল এর মধ্যে পছন্দ চয়ন করুন
একটি দৃশ্যের মূল সৌন্দর্যটি হ'ল এটি বেশিরভাগ পরিস্থিতিতে একটি টেবিলের মতো ব্যবহার করা যেতে পারে তবে একটি টেবিলের বিপরীতে এটি খুব জটিল গণনাগুলি সজ্জিত করতে পারে এবং সাধারণত ব্যবহৃত হয়ে যোগ দেয়। এটি সঞ্চিত প্রক্রিয়া বাদে ডিবিতে যে কোনও বস্তু ব্যবহার করতে পারে। ভিউগুলি সর্বাধিক কার্যকর হয় যখন আপনার সর্বদা একই টেবিলের সমষ্টিতে যোগ হওয়া দরকার যখন সংক্ষিপ্ত গণনা ক্ষেত্রগুলি ইত্যাদি পেতে একটি অর্ডার ডিটেইল সহ একটি আদেশ বলুন etc.
একটি ভিউ একটি বিমূর্ত স্তর এবং এটি কোনও ভাল বিমূর্ত স্তর যা করে তা করে ডেটাবেস স্কিমা এনক্যাপুলেট করা এবং অভ্যন্তরীণ প্রয়োগের বিশদ পরিবর্তন করার পরিণতি থেকে আপনাকে রক্ষা করা সহ।
এটি একটি ইন্টারফেস।
কিছু মানদণ্ড দ্বারা সত্তা সীমাবদ্ধ করতে এখানে ভিউ ব্যবহারের একটি খুব সাধারণ ব্যবহার।
সারণী: USERS এ সমস্ত ব্যবহারকারী থাকে
দেখুন: ACTIVE_USERS এর মধ্যে সমস্ত ব্যবহারকারী রয়েছে যাঁরা স্থগিত, নিষিদ্ধ, সক্রিয় হওয়ার জন্য অপেক্ষা করছেন এবং সক্রিয় প্রয়োজনীয়তার অংশ হিসাবে ভবিষ্যতে আপনি যে সংজ্ঞাটি বেছে নিতে পারেন তা পূরণ না করে। এটি আপনার ইউএসআরএস টেবিল থেকে যে কোনও সারি মুছে ফেলা অপ্রয়োজনীয় করে তোলে আপনার যদি না করা পছন্দ করা হয় কারণ ACTIVE_USERS সর্বদা অযাচিত সারিগুলি আড়াল করতে পারে।
এইভাবে, আপনি আপনার ব্যবহারকারীর পরিচালনা পৃষ্ঠাগুলিতে সারণীটি ব্যবহার করতে পারেন তবে বাকী অ্যাপ্লিকেশনগুলি ACTIVE_USERS ব্যবহার করতে পারে কারণ তারা কেবলমাত্র ব্যবহারকারী হতে পারে যেগুলি প্রক্রিয়াগুলি সম্পাদন করতে এবং ডেটা অ্যাক্সেস / পরিবর্তন করতে সক্ষম হতে পারে।
দর্শনগুলি আপনাকে বেশ কয়েকটি বিভিন্ন সারণী থেকে ডেটা একত্রিত করতে এবং এটিকে ফর্ম্যাট করতে দেয় (ক্ষেত্রগুলি একত্রিত করে, আরও অর্থপূর্ণ ক্ষেত্রের নাম দেয় ইত্যাদি) যাতে শেষ ব্যবহারকারীদের পক্ষে সহজ হয়। এগুলি ডাটাবেস মডেলের বিমূর্ততা। এগুলি ব্যবহারকারীদের টেবিলটিতে সরাসরি অ্যাক্সেস না দিয়ে টেবিলের ডেটাতে অ্যাক্সেস দেওয়ার জন্যও ব্যবহার করা যেতে পারে।
এখানে সরাসরি টেবিলের চেয়ে ভিউ ব্যবহারের কয়েকটি কারণ রয়েছে
Imexploring.com থেকে
সাধারণ কারণ / ব্যবহারগুলির একটি ছোট তালিকা:
ডেটা ফর্ম্যাট বা 'চেহারা' পরিবর্তন করতে তাদের ব্যবহার করুন (যেমন আপনি প্রথম এবং শেষ নাম একসাথে যোগ দিতে পারেন)
ডেটাতে গণনা বা অন্যান্য লুকআপ সম্পাদন করুন
ড্যানোরালাইমালাইজ করুন (একাধিক টেবিল থেকে এক জায়গায় ডেটা উত্তোলন)
মতামত খারাপ! সম্ভব হলে এগুলি এড়িয়ে চলুন এবং কেবল ডিভিকে - অস্থায়ী ডেটা মাইগ্রেশন দ্বারা উল্লিখিত কারণে ব্যবহার করুন।
আপনার বুঝতে হবে যে 100 টি টেবিল সহ একটি ডাটাবেসে প্রতিটি টেবিলের উদ্দেশ্য মনে রাখা শক্ত hard এখন, আপনি যদি এখানে আরও 300 টি ভিউ যুক্ত করেন তবে এটি সম্পূর্ণ জগাখিচুড়ি হয়ে যাবে। 'দেখুন প্রেমীরা' নেস্টেড ভিউগুলি ব্যবহার করে এবং তারপরে সজ্জিত পদ্ধতিতে নেস্টেড ভিউগুলি ব্যবহার করে। আমি ব্যক্তিগতভাবে এখন এমন একটি ডাটাবেস নিয়ে কাজ করি যেখানে 4 বার গভীরতার সাথে ভিউ রয়েছে! সুতরাং একটি সঞ্চিত পদ্ধতির সরলতম যুক্তি বোঝার জন্য আমাকে প্রথমে সমস্ত মতামতের মধ্য দিয়ে যেতে হবে।