আপনি এমন একটি সিস্টেম তৈরি করছেন যা সংস্থাগুলির নজর রাখে। সেই সংস্থাগুলির যোগাযোগ রয়েছে। এই পরিচিতিগুলি প্রায়শই বিশেষজ্ঞ হয় যা কেবলমাত্র বিলিং / অর্থ প্রদান, বিক্রয়, অর্ডারিং এবং গ্রাহক সহায়তা ইত্যাদির মতো নির্দিষ্ট ধরণের প্রশ্নের উত্তর দেয়।
ডোমেন চালিত ডিজাইন এবং একটি পেঁয়াজ আর্কিটেকচার ব্যবহার করে, আমি নিম্নলিখিত ধরণের সাথে এটি মডেল করেছি:
- প্রতিষ্ঠান
- যোগাযোগ আছে
- যোগাযোগ
- যোগাযোগের প্রকার রয়েছে
- যোগাযোগের টাইপ ( এনাম )
- কোম্পানির রিপোজিটরি (ইন্টারফেস)
- EFCompanyRepository (একটি বহিরাগত সমাবেশে সংজ্ঞায়িত, সত্ত্বা ফ্রেমওয়ার্ক ব্যবহার করে, সংস্থাপন্থী প্রয়োগ করে)
এই অ্যাপ্লিকেশনটির জন্য কীভাবে ডেটাবেসকে মডেল করা যায় সে সম্পর্কে আমাদের দলের বিভাজন মতামত রয়েছে।
সাইড এ: লিন ডিডিডারস:
- কোন পরিচিতি টাইপ কোনও পরিচিতির জন্য বৈধ কিনা তা নির্ধারণ করা ডোমেনের কাজ। অজানা যোগাযোগের টিপগুলি সংরক্ষণ করা হয়নি তা যাচাই করতে ডাটাবেসে একটি টেবিল যুক্ত করা একটি ফাঁস ডোমেইনের লক্ষণ। এটি যুক্তি ছড়িয়ে দেয় খুব দূরে।
- ডাটাবেস এবং সম্পর্কিত কোডে একটি স্ট্যাটিক টেবিল যুক্ত করা ব্যর্থ। এই অ্যাপ্লিকেশনটিতে ডাটাবেসটি একটি সমস্যা সমাধান করে: জিনিসটি ধরে রাখুন এবং তা আমাকে ফেরত দিন। একটি অতিরিক্ত টেবিল এবং অনুরূপ CRUD কোড লেখা অপব্যয়যোগ্য।
- অধ্যবসায়ের জন্য কৌশল পরিবর্তন করা যতটা সম্ভব সহজ হওয়া উচিত। ব্যবসায়ের নিয়মগুলি পরিবর্তনের সম্ভাবনা বেশি। যদি আমি স্থির করি যে এসকিউএল সার্ভারের জন্য খুব বেশি খরচ হয় তবে আমি আমার স্কিমাতে রেখেছি সমস্ত বৈধতা পুনরায় তৈরি করতে চাই না।
সাইড বি: ট্র্যাডিশনালিস্টরা [এটি সম্ভবত মোটামুটি নাম নয়। ডিবিসিএন্ট্রিস্টস?]:
- ডাটাবেসটিতে এমন ডেটা থাকা খারাপ ধারণা যা কোডটি না পড়ে বোঝায় না। প্রতিবেদনগুলি এবং অন্যান্য গ্রাহকদের নিজের মূল্যগুলির তালিকার পুনরাবৃত্তি করতে হবে।
- চাহিদা অনুযায়ী আপনার ডিবি টাইপের অভিধানগুলি লোড করার পক্ষে এটি এতটা কোড নয়। এটি সম্পর্কে চিন্তা করবেন না।
- যদি এর উত্স কোড না হয় এবং ডেটা না হয় তবে আমি পরিবর্তন করতে চাইলে একটি সাধারণ এসকিউএল স্ক্রিপ্টের পরিবর্তে বিট স্থাপন করতে হবে।
উভয় পক্ষই সঠিক বা ভুল নয়, তবে তাদের মধ্যে একটি সম্ভবত প্রাথমিকভাবে উন্নয়নের জন্য গণনার সময় নির্ধারণ, বাগগুলি ইত্যাদির জন্য দীর্ঘমেয়াদে আরও দক্ষ, কোন দিকটি এটি রয়েছে - বা এর থেকে আরও ভাল আপস করা যেতে পারে? এই স্টাইলের কোড লেখার অন্যান্য দলগুলি কী করবে?