আমি কোনও অ্যাপ্লিকেশনটির জন্য একটি ডাটাবেস ডিজাইন করার সময় কয়েকটি সাধারণ সেরা অনুশীলন সম্পর্কে সচেতন, তবে পুনরায় ডিজাইনিংয়ের কী?
আমি অভ্যন্তরীণ ব্যবসায়ের অ্যাপ্লিকেশনটিকে নতুন করে ডিজাইনের কাজ করার জন্য একটি দলে রয়েছি, যদিও আমি "অভ্যন্তরীণ" বলার পরেও, আমি দুর্ভাগ্যক্রমে অনেক লোকের, সিস্টেমের প্রকৃত ব্যবহারকারীদের সাথে যোগাযোগ থেকে দূরে রয়েছি of
বর্তমান প্রোগ্রামটি অরাকল ফর্মগুলিতে রয়েছে, নন-নরমালাইজড টেবিলগুলির একগুচ্ছ জুড়ে ছড়িয়ে ছিটিয়ে থাকে, কখনও কখনও একাধিক কাছের-সদৃশ টেবিলগুলি একে অপরের ডেটাতে হালকা রূপ ধারণ করে। সীমাবদ্ধতাগুলি প্রায়শই দুর্বল-প্রয়োগকৃত সঞ্চিত প্রক্রিয়া আকারে হয়। এমনকি প্রকারগুলি সঠিকভাবে সংরক্ষণ করা হয় বলে মনে হয় না। আমি সমস্ত ধরণের খারাপ ডেটার মুখোমুখি হয়েছি যা ওরাকল এড়িয়ে চলেছে বলে মনে হয় তবে এসকিউএল সার্ভারের আমদানি / রপ্তানি উইজার্ডকে ফিট করে (এবং ঠিক তাই) দেয়। (উদাহরণস্বরূপ, দুটি সংখ্যার পূর্ণসংখ্যার সম্পূর্ণ তারিখের সময় হয় না!)
আসল প্রোগ্রামটি সম্ভবত বিশ বছর পিছনে ফিরে যায় এবং মূল বিকাশকারীরা এতদিন আগে অবসর নিয়েছিলেন যে এখানকার বয়স্ক ব্যক্তিরাও জানেন না যে তারা কে ছিলেন। ফলস্বরূপ, এগুলি বন্ধ করার জন্য কোনও পরিষ্কার প্রয়োজনীয়তা নেই - আমরা কেবল বিদ্যমান অ্যাপ্লিকেশনটির কার্যকারিতাটি নকল করে এর বিদ্যমান ডেটা রাখার কথা।
পুনর্লিখনের শেষ ফলাফলটি এমএস এসকিউএল সার্ভারের সাথে পিছনের শেষের জন্য এএসপি.নেট এ চলমান একটি ওয়েব-ভিত্তিক সংস্করণ হতে চলেছে।
আমার অন্য দুটি বিকাশকারী সতীর্থ আমার থেকে অনেক বড়, ব্যবসায় / এমআইএস ব্যাকগ্রাউন্ডের সাথে উভয়ই আমার সিএস is সিনিয়র সদস্যের অভিজ্ঞতা প্রায় একচেটিয়াভাবে ওরাকল ফর্মগুলি এবং অন্য সদস্যটি বেশিরভাগ ভিজ্যুয়াল বেসিকটিতে ব্যবসায়িক অ্যাপ্লিকেশনগুলির কাজ করেছেন। যদিও আমার ডাটাবেস পটভূমিটি মূলত আমার আন্ডারগ্রাড ক্লাসের জন্য মাইএসকিউএল বা এসকিউএলাইটে প্রকল্পগুলির জন্য নতুন ডাটাবেসগুলি ডিজাইনের মধ্যে সীমাবদ্ধ করা হয়েছে তবে আমি কেবলমাত্র ডেটাবেসগুলি ডিজাইন করার অভিজ্ঞতা সহ একমাত্র বলে মনে করি।
আমি ইতিমধ্যে সি # তে একটি ছোট্ট প্রোগ্রাম লিখেছি যা বিদ্যমান সমস্ত ডেটা একটি নিরপেক্ষ বিন্যাসে পড়ে, আবার কাস্ট করার জন্য প্রস্তুত এবং একটি নতুন ডাটাবেসে স্থাপন করা হয়। গন্তব্য ডেটাবেস ডিজাইন করার পরে আমি লোড-ইন কোডটি লেখার পরিকল্পনা করছি, যাতে নতুন সীমাবদ্ধতাগুলি অনুসরণ করার জন্য সঠিকভাবে যুক্ত হওয়া, নতুন সাধারণীকৃত টেবিলগুলিতে তথ্য সঠিকভাবে বিভক্ত করা যায় The একই প্রোগ্রামটি পরে আবার চালানো যেতে পারে later প্রকৃত নতুন মোতায়েন সমাপ্ত পুনরায় নকশায় উত্পাদন ডেটা অনুলিপি করতে। এটি মুখ্য বিষয় হিসাবে ডাটাবেসটির আসল পুনরায় নকশা ফেলে।
সুতরাং আমার প্রশ্নের হৃদয়: একটি বিদ্যমান অ্যাপ্লিকেশনটির ডাটাবেস স্তর থেকে পুনরায় ডিজাইন করার জন্য কয়েকটি সেরা অনুশীলন কী?