প্রায় সব পরিস্থিতিতে, প্রাথমিক কীগুলি আপনার ব্যবসায়ের ডোমেনের অংশ নয়। অবশ্যই, আপনার অনন্য সূচকগুলি সহ কয়েকটি গুরুত্বপূর্ণ ব্যবহারকারী-মুখোমুখী অবজেক্ট থাকতে পারে ( UserName
ব্যবহারকারীদের জন্য বা OrderNumber
আদেশের জন্য) তবে বেশিরভাগ ক্ষেত্রেই কোনও ব্যবসায়ের জন্য কোনও একক মান বা মানের সেট দ্বারা ডোমেন অবজেক্টগুলি স্পষ্টভাবে চিহ্নিত করার দরকার নেই তবে সম্ভবত একটি প্রশাসনিক ব্যবহারকারী এমনকি এই ব্যতিক্রমী ক্ষেত্রেও, বিশেষত যদি আপনি গ্লোবাল ইউনিক আইডেন্টিফায়ার (জিইউডি) ব্যবহার করে থাকেন তবে আপনি প্রাথমিক কী নিজেই প্রকাশের পরিবর্তে বিকল্প কীটি পছন্দ করতে বা নিয়োগ করতে চান।
সুতরাং, যদি ডোমেন-চালিত ডিজাইন সম্পর্কে আমার বোঝাটি সঠিক হয়, প্রাথমিক কীগুলির প্রয়োজন হয় না এবং এইভাবে প্রকাশ করা উচিত নয় , এবং উত্তেজনা। তারা কুরুচিপূর্ণ এবং আমার শৈলী সঙ্কুচিত। তবে যদি আমরা ডোমেন মডেলটিতে প্রাথমিক কীগুলি অন্তর্ভুক্ত না করা বেছে নিই, তবে এর পরিণতিগুলি হতে পারে:
- স্পষ্টতই, ডেটা ট্রান্সফার অবজেক্টস (ডিটিও) যেগুলি কেবলমাত্র ডোমেন মডেলের সংমিশ্রণ থেকে প্রাপ্ত তা প্রাথমিক কীগুলি থাকতে পারে না
- ইনকামিং ডিটিও'র প্রাথমিক কী থাকবে না
সুতরাং, এটি কি নিরাপদে বলা যায় যে আপনি যদি নিজের ডোমেন মডেলটিতে সত্যই বিশুদ্ধ থাকতে এবং প্রাথমিক কীগুলি মুছে ফেলতে চলেছেন তবে আপনাকে সেই প্রাথমিক কীটিতে অনন্য সূচকগুলির ক্ষেত্রে প্রতিটি অনুরোধ পরিচালনা করতে সক্ষম হতে হবে?
অন্য কোনও উপায়ে বলা যাক, ডোমেন মডেলগুলিতে পিকে অপসারণের পরে নির্দিষ্ট কোন বিষয় চিহ্নিতকরণের সাথে সম্পর্কিত নীচের সমাধানগুলির মধ্যে কোনটি সঠিক?
- অন্যান্য বৈশিষ্ট্য দ্বারা আপনার মোকাবেলা করতে প্রয়োজনীয় জিনিসগুলি সনাক্ত করতে সক্ষম হচ্ছেন
- ডিটিওতে প্রাথমিক কী ফিরে পাওয়া; অর্থাত্, অধ্যবসায় থেকে ডোমেনে ম্যাপিং করার সময় পিকে অপসারণ করা, তারপরে ডোমেন থেকে ডিটিওতে ম্যাপিংয়ের সময় পিকে পুনরায় সমন্বয় করুন?
সম্পাদনা: এই কংক্রিট তৈরি করা যাক।
বলুন আমার ডোমেন মডেল VoIPProvider
যা মত ক্ষেত্রগুলি অন্তর্ভুক্ত Name
, Description
, URL
, রেফারেন্স চাই সেইসাথে ProviderType
, PhysicalAddress
এবং Transactions
।
এখন আসুন আমি বলি যে আমি একটি ওয়েব পরিষেবা তৈরি করতে চাই যা সুবিধাপ্রাপ্ত ব্যবহারকারীদেরকে পরিচালনা করতে দেয় VoIPProvider
।
সম্ভবত কোনও ব্যবহারকারী-বান্ধব আইডি এই ক্ষেত্রে অকেজো; সর্বোপরি, ভিওআইপি সরবরাহকারীরা হ'ল সংস্থাগুলি যাদের নাম কম্পিউটার বোধে স্বতন্ত্র এবং ব্যবসায়িক কারণে মানবিক অর্থেও যথেষ্ট স্বতন্ত্র to সুতরাং এটি বলা যথেষ্ট যে একটি অনন্য VoIPProvider
দ্বারা সম্পূর্ণরূপে নির্ধারিত (Name, URL)
। সুতরাং এখন বলি আমার এমন একটি পদ্ধতি প্রয়োজন PUT api/providers/voip
যাতে সুবিধাভোগী ব্যবহারকারীরা VoIP
সরবরাহকারীদের আপডেট করতে পারেন । তারা একটি প্রেরণ করে VoIPProviderDTO
, এতে VoIPProvider
সম্ভাব্য কিছু সমতলকরণ সহ অনেকগুলি কিন্তু সমস্ত ক্ষেত্র অন্তর্ভুক্ত নয় । যাইহোক, আমি তাদের মন পড়তে পারি না এবং তাদের এখনও আমাদের জানাতে হবে যে আমরা কোন সরবরাহকারীর কথা বলছি।
দেখে মনে হচ্ছে আমার কাছে 2 টি (সম্ভবত 3) বিকল্প রয়েছে:
- আমার ডোমেন মডেলটিতে একটি প্রাথমিক কী বা বিকল্প কী অন্তর্ভুক্ত করুন এবং এটি ডিটিওতে এবং এর বিপরীতে প্রেরণ করুন
- অনন্য সূচকগুলির মতো আমরা যে সরবরাহকারীর যত্ন নিই তা সনাক্ত করুন
(Name, Url)
- কিছু ধরণের মধ্যবর্তী অবজেক্টের পরিচয় দিন যা স্থিরতা স্তর, ডোমেন এবং ডিটিওর মধ্যে সর্বদা এমনভাবে ম্যাপ করতে পারে যা অধ্যবসায় স্তর সম্পর্কে বাস্তবায়নের বিশদটি প্রকাশ করে না - ডোমেন থেকে ডিটিও এবং পিছনে যাওয়ার সময় একটি মেমরি অস্থায়ী শনাক্তকারী পরিচয় করিয়ে দিয়ে বলুন,