আমি এই প্রশ্নটি মডেলিং দৃষ্টিকোণ থেকে নেব।
যতক্ষণ না আপনি এমন কোনও সম্পর্ক যুক্ত করবেন না যা বাস্তবে নেই। আপনি নিরাপদে রয়েছেন। আপনি যদি এগুলি যুক্ত করেন তবে আপনি ডেটাতে কম সততা পাবেন (কারণ এখানে অতিরিক্ত কাজ রয়েছে) এবং আরও দৃ tight়ভাবে সংযুক্ত কোড code
বিশেষত বিজ্ঞপ্তি সংক্রান্ত রেফারেন্সের সাথে জিনিসটি হ'ল আমি এমন কোনও মামলা দেখিনি যেগুলি সত্যিকারের রেফারেন্স ছাড়া কেবল তাদের প্রয়োজন হবে self আপনি যদি গাছ বা গ্রাফকে মডেল করেন তবে আপনার এটি দরকার এবং এটি পুরোপুরি ঠিক আছে কারণ কোড-মানের দৃষ্টিকোণ থেকে স্ব-রেফারেন্স নিরীহ (কোনও নির্ভরতা যুক্ত করা হয়নি)।
আমি বিশ্বাস করি যে মুহুর্তে আপনার একটি স্ব-স্ব-রেফারেন্সের প্রয়োজন শুরু হওয়ার সাথে সাথেই আপনাকে জিজ্ঞাসা করা উচিত যে আপনি এটি কোনও গ্রাফ হিসাবে মডেল করতে পারবেন না (একাধিক সত্তাকে এক - নোডে ভেঙে ফেলুন)। আপনি যেখানে একটি বিজ্ঞপ্তি রেফারেন্স করেন সেখানে একটি ক্ষেত্রে থাকতে পারে তবে গ্রাফ হিসাবে মডেলিং করা উপযুক্ত নয় তবে আমি অত্যন্ত সন্দেহ করি doubt
এমন একটি বিপদ রয়েছে যে লোকেরা মনে করে যে তাদের একটি বিজ্ঞপ্তি রেফারেন্স প্রয়োজন তবে বাস্তবে তারা তা করে না। সর্বাধিক সাধারণ কেসটি হ'ল "দ্য-এক-একাধিক কেস"। উদাহরণস্বরূপ, আপনি একাধিক ঠিকানা সহ গ্রাহক পেয়েছেন যেখান থেকে প্রাথমিক ঠিকানা হিসাবে চিহ্নিত করা উচিত। এই পরিস্থিতিটিকে মডেল করা খুব লোভনীয় কারণ দুটি পৃথক সম্পর্ক has_address এবং is_primary_address_of তবে এটি সঠিক নয়। কারণটি হ'ল প্রাথমিক ঠিকানাটি ব্যবহারকারী এবং ঠিকানার মধ্যে আলাদা সম্পর্ক নয় বরং পরিবর্তে এটি সম্পর্কের একটি বৈশিষ্ট্য হিসাবে ঠিকানা রয়েছে। কেন এমন? কারণ এর ডোমেনটি ব্যবহারকারীর ঠিকানাগুলিতে সীমাবদ্ধ এবং সেখানে থাকা সমস্ত ঠিকানার পক্ষে নয়। আপনি লিঙ্কগুলির মধ্যে একটি বেছে নিন এবং এটিকে সবচেয়ে শক্তিশালী (প্রাথমিক) হিসাবে চিহ্নিত করুন।
(এখনই ডাটাবেস সম্পর্কে কথা বলতে যাচ্ছি) অনেকে দ্বি-সম্পর্কের সমাধানের বিকল্প বেছে নেন কারণ তারা "প্রাথমিক "টিকে একটি অনন্য পয়েন্টার হিসাবে বোঝেন এবং বিদেশী কীটি পয়েন্টার জাতীয়। তাই বিদেশী কী ব্যবহার করার জিনিস হওয়া উচিত, তাই না? ভুল। বিদেশী কীগুলি সম্পর্কের প্রতিনিধিত্ব করে তবে "প্রাথমিক" কোনও সম্পর্ক নয়। এটি অর্ডারিংয়ের একটি অবক্ষয়যুক্ত কেস যেখানে একটি উপাদান সকলের উপরে এবং বাকিটি অর্ডার করা হয় না। যদি আপনার মোট অর্ডারিংয়ের মডেল করার প্রয়োজন হয় তবে অবশ্যই আপনি এটি সম্পর্কের বৈশিষ্ট্য হিসাবে বিবেচনা করবেন কারণ মূলত অন্য কোনও পছন্দ নেই। তবে এই মুহূর্তে আপনি এটিটি হ্রাস করার সময়, একটি পছন্দ এবং বেশ ভয়ঙ্কর একটি রয়েছে - এমন কোনও মডেল করার জন্য যা সম্পর্ক হিসাবে সম্পর্ক নয়। সুতরাং এখানে এটি আসে - রিলেশনশিপ রিডানডেন্সি যা অবশ্যই হ্রাস করার মতো কিছু নয়।
সুতরাং, আমি কোনও বিজ্ঞপ্তিযুক্ত রেফারেন্স আনতে অনুমতি দেব না যতক্ষণ না এটি সম্পূর্ণরূপে পরিষ্কার না হয় যে এটি আমি যে মডেলিং করছি তার থেকে আসে।
(দ্রষ্টব্য: এটি ডাটাবেস ডিজাইনের প্রতি সামান্য পক্ষপাতদুষ্ট তবে আমি বাজি ধরব এটি অন্যান্য ক্ষেত্রেও এটি মোটামুটি প্রযোজ্য)