আমি এখনও অবধি অনেক ডাটাবেস (মাইএসকিউএল) ওয়েব অ্যাপস লিখেছি তবে আমি সবসময় মনে করি যে আমার কাঠামোটি দারুণ আনাড়ি is আমি এখানে কিছু পরামর্শের প্রত্যাশায় আমি ব্যবহৃত প্রোগ্রামিং / ডিজাইনের ধরণটি উন্নত করতে চাই। বিশেষত, আমি এমন কোনও কাঠামো খুঁজে পাই না যা একটি ওওপি পদ্ধতির পরিপূরক করে যা ডেটাবেস (স্কিমা) এর প্রয়োগকে আবদ্ধ করে। আমি
আমার প্রশ্নটি উদাহরণের মাধ্যমে সর্বোত্তমভাবে ব্যাখ্যা করা যেতে পারে বলে মনে করুন। আমি এখন ব্যবহার করি এমন 2 টি পন্থা রয়েছে বলে আমার কাছে একটি চালান অবজেক্ট / শ্রেণি রয়েছে:
প্রথমটি হ'ল স্থায়ী সদস্যের কার্যাদি ব্যবহার করা
class Invoice
{
int id;
string ref;
int customer_id;
date created;
date due;
static id create();
static bool update(id, field1, field2, ...);
static bool delete(id);
static bool get(id);
};
দ্বিতীয় পদ্ধতির প্রতিটি জিনিস একটি ডাটাবেস অবজেক্টে রাখা:
class Database extends ProprietaryDBConnecter, Singleton
{
id createInvoice();
bool updateInvoice(id, field1, field2, ...);
bool deleteInvoice(id);
bool getInvoice(id);
id createCustomer();
bool updateCustomer(id, field1, field2, ...);
bool deleteCustomer(id);
bool getCustomer(id);
// etc...
}
আমি দেখতে পেলাম যে উভয় উপায়ে (এসকিউএল) সদস্য ফাংশনগুলি "ভিউ" থেকে খুব অবিচ্ছেদ্য, যাতে "ভিউ" নির্ধারণ করে যে ক্লাসগুলির কী প্রয়োজন এবং তাই নথি / দর্শন আর্কিটেকচারটি ভঙ্গ করে বলে মনে হচ্ছে।
এছাড়াও, এটি একরকম অক্ষম বলে মনে হচ্ছে উদাহরণস্বরূপ একটি নির্বাচন বৈঠকে কেবল যা প্রয়োজন তা নির্বাচন করা উচিত, তবে ইনভয়েসে সদস্য ভেরিয়েবলগুলির উপস্থিতি "গ্যারান্টিযুক্ত ডেটা" বোঝায়।
আমি প্রশ্নটি পরিষ্কারভাবে ব্যাখ্যা করেছি কিনা জানি না, এই আর্কিটেকচার / ডিজাইনের প্যাটার্ন / এটি-এর-হিসাবে-পরিচিত হিসাবে আরও কিছু সেরা পন্থা কী?
পরামর্শের জন্য ধন্যবাদ