ধরুন আমাদের কাছে একটি টেবিল রয়েছে যার নিজের কাছে একটি বিদেশী কী বাধা রয়েছে, যেমন:
CREATE TABLE Foo
(FooId BIGINT PRIMARY KEY,
ParentFooId BIGINT,
FOREIGN KEY([ParentFooId]) REFERENCES Foo ([FooId]) )
INSERT INTO Foo (FooId, ParentFooId)
VALUES (1, NULL), (2, 1), (3, 2)
UPDATE Foo SET ParentFooId = 3 WHERE FooId = 1
এই টেবিলে নিম্নলিখিত রেকর্ড থাকবে:
FooId ParentFooId
----- -----------
1 3
2 1
3 2
এমন কেস রয়েছে যেখানে এই ধরণের নকশাটি বোঝাপড়া করতে পারে (যেমন আদর্শ "কর্মচারী-ও-বস-কর্মচারী" সম্পর্ক), এবং যে কোনও ক্ষেত্রে: আমি এমন একটি পরিস্থিতিতে আছি যেখানে আমার স্কিমায় এটি রয়েছে।
এই ধরণের ডিজাইন দুর্ভাগ্যক্রমে উপরের উদাহরণে দেখানো হিসাবে, ডেটা রেকর্ডগুলিতে বিজ্ঞপ্তির জন্য অনুমতি দেয়।
আমার প্রশ্নটি তখন:
- এটি পরীক্ষা করে এমন প্রতিবন্ধকতা লেখা কি সম্ভব ? এবং
- এটি পরীক্ষা করে এমন প্রতিবন্ধকতা লেখা কি সম্ভব ? (যদি কেবলমাত্র একটি নির্দিষ্ট গভীরতার প্রয়োজন হয়)
এই প্রশ্নের অংশ (2) এর জন্য এটি উল্লেখ করা প্রাসঙ্গিক হতে পারে যে আমি কেবলমাত্র শত শত বা সম্ভবত কিছু ক্ষেত্রে আমার টেবিলের কয়েক হাজার রেকর্ড আশা করি, সাধারণত প্রায় 5 থেকে 10 স্তরের চেয়ে আরও গভীর থেকে বাসা বাঁধে না।
পুনশ্চ. এমএস এসকিউএল সার্ভার ২০০৮
14 ই মার্চ 2012 আপডেট করুন
বেশ কয়েকটি ভাল উত্তর ছিল। আমি এখন সেইটিকেই গ্রহণ করেছি যা আমাকে উল্লিখিত সম্ভাবনা / সম্ভাব্যতা বুঝতে সাহায্য করেছে । যদিও আরও বেশ কয়েকটি দুর্দান্ত উত্তর রয়েছে, কিছু বাস্তবায়নের পরামর্শও রয়েছে, সুতরাং আপনি যদি একই প্রশ্নটি নিয়ে এখানে অবতী হন তবে সমস্ত উত্তর একবার দেখুন))