Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Amazon DynamoDB - Thiết kế bảng dựa trên tình bạn

Câu hỏi là, một người dùng có thể có một danh sách bạn bè. Với một người dùng, chúng tôi muốn có tất cả bạn bè của anh ấy / cô ấy (tên + trạng thái trực tuyến / ngoại tuyến). Làm cách nào để chúng tôi thực hiện việc này trong DynamoDB?

Đầu tiên cho mỗi người dùng, bạn cần chỉ định user_id. Đó sẽ là số nhận dạng duy nhất cho người dùng đó, hay nói cách khác là một con trỏ.

Bạn có thể sử dụng bảng Hash-Range để lưu trữ dữ liệu tình bạn. Cả khóa băm và khóa phạm vi của bảng này sẽ là user_id. Trong DynamoDB mỗi khóa băm có thể có nhiều khóa phạm vi. Khóa băm sẽ là một người dùng và chúng tôi có thể lưu trữ tất cả id người dùng của bạn bè cô ấy trong khóa phạm vi.

giả sử user_1 là bạn với user_2 và user_3

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

Bạn có thể có một bảng khác lưu trữ thông tin Người dùng

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

Bây giờ bạn muốn kết bạn của user_1. Bạn có thể thực hiện truy vấn DynamoDB với hash_key =user_1. Trong ví dụ trên, bạn sẽ nhận được 2 hàng:

(user_1, user_2) (uiser_1, user_3).

Bây giờ bạn biết rằng user_2 và user_3 là bạn của user_1. Bạn có thể sử dụng Bảng người dùng để nhận trạng thái trực tuyến của user_2 và 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. Lỗi MySQL 8.0.11 kết nối với caching_sha2_password, không thể tìm thấy mô-đun được chỉ định

  2. # 1025 - Lỗi khi đổi tên (errno:150) trong mysql

  3. PHP tạo chèn PDO động

  4. Truy vấn chậm trên information_schema.tables

  5. Nhóm theo năm trong trường ngày trong MySQL