यह मानते हुए कि आपके सभी मित्र भी उपयोगकर्ता तालिका में हैं, आपको एक मित्र तालिका की आवश्यकता होगी जो एक साधारण एक-से-अनेक संबंध को परिभाषित करती है - उपयोगकर्ता तालिका को वापस स्वयं से जोड़ती है। तो
User Table
UserID int identity not null
[other attribute fields]
Friends Table
UserIDLink1 int
UserIDLink2 int
[other attribute field]
जहां UserIDLink1 और UserIDLink2 दोनों उपयोगकर्ता तालिका में विदेशी कुंजी हैं।
तो उदाहरण के लिए यदि मेरे पास तीन उपयोगकर्ता हैं
1 Joe
2 Bill
3 Jane
और जो और जेन मित्र हैं तो मित्र तालिका में एक पंक्ति होगी
1 3
उपरोक्त स्पष्ट रूप से यह मानता है कि यदि A, B का मित्र है तो B, A का मित्र है - यदि ऐसा नहीं है तो आप संभवतः UserIDLink1 और UserIDLink2 का नाम बदलकर UserID और FriendID या इसी तरह करना चाहेंगे - इस मामले में आप रिकॉर्ड को भी दोगुना करना है।
इसके अलावा द्वि-दिशात्मक कॉन्फ़िगरेशन के लिए (A, B का मित्र है यदि B, A का मित्र है) तो आपको (UserIDLink1,UserIDLink2) और (UserIDLink2,UserIDLink1) के लिए मित्र तालिका पर अनुक्रमणिकाएँ सेट करनी चाहिए ताकि यह सुनिश्चित किया जा सके कि पहुँच हमेशा कुशल हो यदि हम या तो जो के दोस्तों या जेन के दोस्तों के लिए खोज रहे थे (यदि आपने दूसरी अनुक्रमणिका सेट नहीं की है तो पहली क्वेरी एक कुशल अनुक्रमणिका लुकअप होगी लेकिन दूसरी को पूर्ण तालिका स्कैन की आवश्यकता होगी)।
यदि आपके लिंक द्विदिश नहीं थे, तो यह पता लगाना आवश्यक नहीं होगा कि A के मित्र कौन हैं, लेकिन फिर भी आपको शायद इसकी सबसे अधिक आवश्यकता होगी क्योंकि आपको यह पता लगाने की भी आवश्यकता होगी कि B किसका मित्र है।