كيفية تمثيل ذاتي لعلاقة الذات في RDBMS؟

StackOverflow https://stackoverflow.com/questions/1429980

  •  07-07-2019
  •  | 
  •  

سؤال

ونأمل أن هذا هو سؤال سخيف لكن المقلية ذهني وأنا لا أستطيع التفكير في كيفية القيام بذلك في الوقت الحالي.

وأنا العبث محاولة لجعل ثينغي الشبكات الاجتماعية، وسوف تحتاج إلى تتبع "أتباع" الشخص. لقد جعلت من الجدول المستخدم بالفعل، ولكن كيف أنا أمثل الفكرة من المستخدمين ارتباطها مع بعضها البعض؟ هذه هي العلاقة في اتجاه واحد راجع للشغل، حتى إذا كان الشخص "يحب" شخص ب، والعكس ليس صحيحا بالضرورة.

والشيء الوحيد الذي يمكنني أن أفكر هو جدول الذي لديه مجرد قائمة من واحد الى واحد العلاقات، لذلك:

user a -> user b  
user a -> user c  
user a -> user d  
user b -> user d  
user b -> user c  
...  

ولكن هذا يبدو قبالة لي.

والشكر

وسيمون

وتحرير: ربما من أتباع على تويتر هو أكثر مماثلة لما أحاول القيام به

هل كانت مفيدة؟

المحلول

وإنشاء جدول الذي يحمل معلومات متابع الهوية الوحيدة مثل ذلك:

وUSER_ID | follower_id

وهذا ينبغي أن يكون عليه. حتى تأخذ للمستخدم المثال رقم 56.

وقال انه ربما سيكون لهما صفان مثل هذا في الجدول تابع:

56 | 53453
56 | 323
56 | 463

وأضيف قيد فريد على كل الأعمدة بحيث أنه لا يمكن صديق شخص مرتين.

نصائح أخرى

ولعل الجدول الذي يشبه:

RelationshipId    Follower Target
Int               Int      Int

وأين أتباع هو معرف من المستخدم ص، والهدف هو معرف المستخدم س، والمستخدم ص هو المستخدم س التالية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top