Mysql
 sql >> база данни >  >> RDS >> Mysql

Amazon DynamoDB - Проектиране на таблици въз основа на приятелства

Въпросът е, че потребителят може да има списък с приятели. При даден потребител искаме да получим всички негови/нейни приятели (име + онлайн/офлайн статус). Как да направим това в DynamoDB?

Първо за всеки потребител трябва да зададете user_id. Това ще бъде уникалният идентификатор за този потребител, с други думи, указател.

Можете да използвате таблица на Hash-Range, за да съхранявате данните за приятелството. И хеш ключът, и ключът за диапазона на тази таблица ще бъдат 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. Можете да направите DynamoDB заявка с hash_key е равно на user_1. В горния пример ще получите 2 реда:

(потребител_1, потребител_2) (потребител_1, потребител_3).

Сега знаете, че user_2 и user_3 са приятели на user_1. Можете да използвате User the table, за да получите онлайн статуса на user_2 и user_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 връща неправилен bigint резултат с една, много странна грешка

  2. Rails 3 - грешка при внезапно чакащи миграции

  3. MySQL съкращава текста с многоточия

  4. MySQL - Изчисляване на полета в движение срещу съхраняване на изчислени данни

  5. Разлика между ключ, първичен ключ, уникален ключ и индекс в MySQL