Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Amazon DynamoDB - दोस्ती के आधार पर टेबल डिजाइन करना

सवाल यह है कि उपयोगकर्ता के पास मित्रों की सूची हो सकती है। एक उपयोगकर्ता को देखते हुए, हम उसके सभी दोस्तों (नाम + ऑनलाइन/ऑफ़लाइन स्थिति) प्राप्त करना चाहते हैं। हम इसे DynamoDB में कैसे करते हैं?

प्रत्येक उपयोगकर्ता के लिए सबसे पहले आपको एक user_id असाइन करना होगा। वह उस उपयोगकर्ता के लिए विशिष्ट पहचानकर्ता होगा, दूसरे शब्दों में, एक सूचक।

दोस्ती डेटा को स्टोर करने के लिए आप हैश-रेंज टेबल का उपयोग कर सकते हैं। इस तालिका की हैश कुंजी और श्रेणी कुंजी दोनों ही user_id होंगी। DynamoDB में प्रत्येक हैश कुंजी में कई रेंज कुंजियाँ हो सकती हैं। हैश कुंजी एक उपयोगकर्ता होगी और हम उसके सभी मित्रों की उपयोगकर्ता आईडी को श्रेणी कुंजी में संग्रहीत कर सकते हैं।

यह मानते हुए कि user_1, user_2 का मित्र है और user_3

"Friendship table in DynamoDB"
HashKey   RangeKey
user_1    user_2
user_1    user_3
user_2    user_1
user_3    user_1

आपके पास एक अन्य तालिका हो सकती है जो उपयोगकर्ता जानकारी संग्रहीत करती है

"User table in DynamoDB"
HashKey   name    isLoggedin
user_1    J       true
user_2    swaggyp false
user_3    furion  false

अब आप user_1 का मित्र प्राप्त करना चाहते हैं। आप उपयोगकर्ता_1 के बराबर हैश_की के साथ डायनेमोडीबी क्वेरी कर सकते हैं। उपरोक्त उदाहरण में, आपको 2 पंक्तियाँ मिलेंगी:

(उपयोगकर्ता_1, उपयोगकर्ता_2) (यूज़र_1, उपयोगकर्ता_3)।

अब आप जानते हैं कि उपयोगकर्ता_2 और उपयोगकर्ता_3 उपयोगकर्ता_1 के मित्र हैं। उपयोगकर्ता_2 और उपयोगकर्ता_3 की ऑनलाइन स्थिति प्राप्त करने के लिए आप उपयोगकर्ता तालिका का उपयोग कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉलम मान बदलने पर MySQL पंक्ति का चयन करें

  2. MYSQL रिकॉर्ड्स की संख्या डाली और अपडेट की गई

  3. MYSQL जटिल संघ

  4. MySQL में RPAD () फ़ंक्शन कैसे काम करता है

  5. mysql:पोस्टफिक्स-खोज के लिए कुशल तरीका (जैसे '% टेक्स्ट' उर्फ। उपसर्ग वाइल्डकार्ड)?