Đây là một bố cục chung cho bạn, hãy tạo ba bảng như bạn đã đề cập, tôi đã phác thảo bên dưới chỉ để làm ví dụ
[BẢNG BIỂU]
- người dùng
- người theo dõi
- bài đăng
Trong bảng người dùng, bạn nên có ít nhất các cột như userid (giá trị tăng tự động / khóa chính).
Bảng người theo dõi phải có một cái gì đó giống như userid sẽ khớp với userid bảng người dùng, một cột followid cũng sẽ có id # cho người theo dõi từ bảng người dùng.
Sau đó, đối với bảng bài đăng của bạn, bạn cũng muốn có userid để khi mỗi bài đăng được tạo, nó sẽ có id từ bảng người dùng.
Sau đó, bạn sẽ cần phải làm một cái gì đó như:
SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC
Bây giờ nó thực sự phụ thuộc vào cách bạn lấy id người dùng để tìm ra điều này. Nếu bạn chuyển id người dùng bằng một phiên sau khi họ đăng nhập tương tự như Facebook, thì bạn có thể thay đổi userid =### thành một cái gì đó như userid =". $ _ SESSION ['userid']." Nhưng một lần nữa, nó thực sự phụ thuộc vào cách bạn chuyển id người dùng nhưng những điều trên ít nhất sẽ giúp bạn phần nào bắt đầu.
Đảm bảo đặt các chỉ mục trên userid, các cột tiếp theo để khi bảng trở nên lớn hơn, nó sẽ thực hiện các phép nối một cách nhanh chóng.