كيفية تمثيل ذاتي لعلاقة الذات في RDBMS؟
-
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
وأين أتباع هو معرف من المستخدم ص، والهدف هو معرف المستخدم س، والمستخدم ص هو المستخدم س التالية.