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

Bạn của một người bạn trong PHP / MySQL?

Câu trả lời là họ không thực hiện lựa chọn trên một bàn bạn bè, rất có thể họ đang sử dụng một bảng sự kiện-tin tức đã được khử chuẩn hóa. Chúng tôi đã triển khai một nguồn cấp tin tức tương tự như Facebook trên DoInk.com, đây là cách chúng tôi đã thực hiện:

Có khái niệm về "NewsEvent" nó có một loại, một trình khởi tạo (một id người dùng) và một người dùng mục tiêu (cũng là một id người dùng). (Bạn cũng có thể có (các) cột bổ sung cho các thuộc tính khác có liên quan đến sự kiện hoặc tham gia chúng vào)

Khi một người dùng đăng nội dung nào đó trên tường của người dùng khác, chúng tôi tạo ra một sự kiện như sau:

INSERT INTO events VALUES (wall_post_event, user1, user1)

Khi xem hồ sơ của user1, bạn sẽ chọn tất cả các sự kiện trong đó user1 là người khởi xướng hoặc mục tiêu. Đó là cách bạn hiển thị nguồn cấp dữ liệu hồ sơ. (Bạn có thể chọn và lọc ra các sự kiện tùy thuộc vào mô hình bảo mật của mình. Bạn có thể cân nhắc thực hiện việc này trong bộ nhớ vì lý do hiệu suất)

Ví dụ:

SELECT * FROM events WHERE initiator = user1 or target = user1 //to see their profile feed

SELECT * FROM events WHERE initiator IN (your set of friend ids) //to see your newsfeed

Khi bạn muốn xem nguồn cấp tin tức cho tất cả các sự kiện liên quan đến bạn bè của mình, bạn có thể thực hiện truy vấn chọn tất cả các sự kiện mà người khởi xướng nằm trong nhóm bạn bè của bạn.

Tránh triển khai với các lựa chọn phụ, tùy thuộc vào mức độ phức tạp, chúng sẽ không mở rộng quy mô.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng NẾU TỒN TẠI của MySQL

  2. Cách tránh lỗi hết bộ nhớ trong trình duyệt do quá nhiều lệnh gọi ajax

  3. Làm cách nào để sử dụng tính năng băm mật khẩu với PDO để làm cho mã của tôi an toàn hơn?

  4. Làm cách nào để cho phép khách hàng sử dụng openid của họ trên trang web của bạn, giống như stackoverflow?

  5. Sử dụng HHVM với WordPress