সম্পর্কিত ডেটাবেস এবং পুনরাবৃত্তি উন্নয়ন


19

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

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

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

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

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

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

দেখে মনে হচ্ছে যে এখানে কোনও সম্পর্কিত ডেটাবেসই বাধা হয়ে দাঁড়াচ্ছে যা শেষ ব্যবহারকারীদের দ্বারা প্রয়োজনের সময় পুনরাবৃত্তি বিকাশ করা এমনকি সফ্টওয়্যার আপডেট করা থেকে আমাদের বাধা দেয়।

আমি ইতিমধ্যে ব্যবহার করেছি এমন একটি পদ্ধতি হ'ল একটি বিশেষ ক্লাস কোড করা যা পুরানো ডাটাবেস সারণিকে মানচিত্রে নতুন করে তোলে। সুতরাং এই ক্লাসগুলি পুরানো ফর্ম্যাটে ডেটা বাছাই করে, এটিকে নতুন মডেলের ব্যবহৃত ফর্ম্যাটে রূপান্তর করুন এবং নতুন টেবিলগুলিতে সংরক্ষণ করুন।

এই পদ্ধতির সেরা বলে মনে হচ্ছে না। আমার প্রশ্নটি এখানে: আপেক্ষিক ডেটাবেসগুলির সাথে পুনরাবৃত্তি বিকাশের পুনর্গঠনের জন্য কোনও সুপরিচিত এবং পুনরায় সংশোধন করার পদ্ধতি রয়েছে?


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

1
আপনি ডাটাবেস স্কিমা এমনভাবে পরিবর্তন করেন যা ডেটা হারাবে না, এন.ইউইকিপিডিয়াআর.ইউইকি / শেমি_মিজারেশন
রিমকো গ্রিলিচ

1
আমি নিশ্চিত যে এই বিষয়টি আগে কোথাও ব্যাপকভাবে আলোচিত হয়েছিল, কেবল প্রোগ্রামারগুলিতে এটি খুঁজে পাচ্ছে না। কিন্তু এখানে দেখতে martinfowler.com/articles/evodb.html অথবা এখানে stackoverflow.com/questions/334059/...
ডক ব্রাউন

1
"এগুলি বাদে, যদিও আমরা একটি নিখুঁত মডেলটি সামনে আনার চেষ্টা করি, যা আমি ইতিমধ্যে নিশ্চিত হয়েছি যে খুব শক্ত, প্রয়োজনীয়তা পরিবর্তন হতে পারে।" আমি যোগ করতে চাই যে আপনি এমনকি সামনে (নিখুঁত কাছাকাছি) মডেল পেতে চেষ্টা করা উচিত নয়। এটি আপনার মানসিকতাকে আপনার বিকল্পগুলি খোলা রাখার পরিবর্তে এক ধরণের সমাধানে বাঁধতে পারে।
বাঁকানো

উত্তর:


15

এটি বিশেষ ক্লাসে থাকতে হবে না, তবে হ্যাঁ, আপনার এমন কিছু দরকার যা পূর্ববর্তী ফর্ম্যাটে ডাটাবেস গ্রহণ করবে এবং এটি বর্তমানের মধ্যে রূপান্তর করবে।

এখানে জিনিসটি হ'ল এই স্ক্রিপ্টগুলি এবং শৃঙ্খলা রচনার জন্য এবং পরীক্ষা করার জন্য একটি প্রক্রিয়া বিকাশ করা দরকার যা টেস্টিং এবং প্রোডাকশন ডেটাবেসগুলি হাতের মাধ্যমে কখনও স্পর্শ না করে সর্বদা মাইগ্রেশন স্ক্রিপ্টগুলির মাধ্যমে।

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

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

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

@ ডক ব্রাউন ইতিমধ্যে মার্টিন ফাউলারের সাথে লিঙ্ক করেছেন : বিবর্তনীয় ডেটাবেস ডিজাইন এবং /programming/334059/agile-de વિકાસment- এবং- ডেটাবেস- পরিবর্তনগুলি , এবং আমি অ্যালেক্স পাপাদিমুলিস যুক্ত করব: ডাটাবেস পরিবর্তনগুলি ডান রাইট , যা সংক্ষিপ্ত এবং এর কিছু উদাহরণ রয়েছে।

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


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

1
আলেক্সের নিবন্ধটির জন্য থাম্বস আপ; এটি সংক্ষিপ্ত নাও হতে পারে তবে এটি অনেক বেশি অনুশীলন-ভিত্তিক এবং বিনোদনমূলক পাঠ্য করে তোলে।
মারফি

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

1

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

প্রথম এবং সর্বাগ্রে, কোনও রিলেশনাল ডাটাবেস ডেটা মডেলকে খুব বেশি সীমাবদ্ধ করে, পরিবর্তনগুলি খুব কঠিন করে তোলে?

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

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

এটি প্রশ্নের দ্বিতীয় অংশের দিকে নিয়ে যায়, যা আসলেই অনুমানের চেয়ে বেশি ছিল, তবে একটি প্রশ্ন হিসাবে দেখা উচিত: আমাদের ডোমেন মডেলটি প্রথমবারের মতো সঠিকভাবে সম্পন্ন করা উচিত?

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

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

এটি চূড়ান্ত প্রশ্নের দিকে নিয়ে যায়: চূড়ান্ত পদ্ধতির সাথে কি কোনও সম্পর্কিত ডেটা মডেল বেমানান?

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


1
আমি সত্যই আশা করি আপনি বিবৃতিটিকে আরও নাটকীয় করে তোলার জন্য আরডিবিএমএস সারণিতে একটি নতুন ক্ষেত্র তৈরির সমস্যাটিকে বড় করেছেন। একটি ক্ষেত্র যুক্ত করতে সত্যিকারের সমস্যা তৈরি করতে ডাটাবেস টেবিলটি খুব বিশেষ (বা নতুন ক্ষেত্রের ধরণের ব্যতিক্রমী কিছু হওয়া দরকার) হওয়া দরকার।
আলেক্সি জিমেরেভ

হ্যাঁ, তবে এটি কখনও একটি ক্ষেত্র নয় ...
মায়ার

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

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

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

-1

মূল বিষয়টি এতটা রিফ্যাক্টর না করা যে আপনার মডেলটি সমস্ত স্বীকৃতির বাইরে চলে। এমনকি পুনরাবৃত্তির বিকাশের সাথে আপনার অবশ্যই সত্যিকারের বিদ্যমান সামগ্রীর শীর্ষে তৈরি করা উচিত এবং এটিকে টুকরো টুকরো করে পুনরুদ্ধার করা উচিত নয়।

এটি এলে আপনাকে বড় পরিবর্তনগুলি হ্যান্ডেল করার জন্য 2 টি প্রধান বিকল্প দেয়: প্রথমটি হ'ল ডিবি স্তরটি এপিআই হিসাবে তৈরি করা, সঞ্চিত প্রক্রিয়াগুলি ব্যবহার করা যাতে অন্তর্নিহিত ডেটা স্কিমা পরিবর্তন না করে ক্লায়েন্টের অনুসারে তাদের পরিবর্তন করা যায়।

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

সুতরাং: 1. নকশা নিয়ে সামনে চিন্তা করার চেষ্টা করুন যাতে আপনার কোনও জিনিস পরিবর্তন করার দরকার নেই।

  1. মোড়ক বা এপিআইয়ের উপর নির্ভর করুন সুতরাং পরিবর্তন সীমাবদ্ধ বা কোনও বিচ্ছিন্ন উপাদানগুলির মধ্যে লুকানো যেতে পারে

  2. আপনার যদি প্রয়োজন হয় তবে যথাযথভাবে আপগ্রেড করতে সময় নিন।

এই পদক্ষেপগুলি কেবলমাত্র ডাটাবেসগুলিতে নয়, সমস্ত কিছুর জন্য প্রযোজ্য।


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

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

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