Để tham khảo, dưới đây là câu hỏi về SO mà tôi đã hỏi gần đây có liên quan đến câu hỏi này: How to model Friendship relationshipsTrong môi trường mạng xã hội, cách nào là cách dễ nhất để kiểm tra tình bạn trên toàn cầu?
Về câu hỏi đó, chúng tôi đã tìm ra cách hiển thị các mục nguồn cấp tin tức chỉ khi bạn bè đăng. Tuy nhiên, những gì tôi cần là lời khuyên về cách kiểm tra tình bạn một cách năng động hơn để nó có thể được sử dụng trong một số chức năng của trang web.
Ví dụ: tôi vừa cài đặt hệ thống nhận xét, cho phép người dùng đăng nhận xét về bài đăng tin tức. Tuy nhiên, điều này không bị giới hạn đối với bạn bè, và nó nên được (và sau đó nên được thực hiện tùy chọn bởi tác giả của bài viết).
Chỉ đăng tin tức cho bạn bè là hơi khác vì tôi đã nhận dữ liệu trực tiếp từ cơ sở dữ liệu và sử dụng các truy vấn phụ SELECT
để chỉ nhận bài đăng của bạn bè của người dùng hiện tại. Tuy nhiên, trong ví dụ về nhận xét, tôi chỉ muốn hiển thị biểu mẫu bài đăng bình luận nếu người đó là bạn. Tôi không thực sự kéo bất cứ thứ gì từ cơ sở dữ liệu để chọn, sắp xếp và hiển thị.
Việc biết các vấn đề như thế này sẽ phát sinh nhiều lần trong toàn bộ trang web, cách đơn giản nhất để kiểm tra tình bạn là gì? Tôi bằng cách nào đó có thể kéo tất cả ID người dùng của bạn bè từ cơ sở dữ liệu vào mảng phiên của một loại nào đó và sau đó thực hiệnif(in_array($friends))
bất cứ khi nào tôi cần xác định xem người đó có phải là bạn của người dùng hiện đã đăng nhập không? Off đầu của tôi, điều này nghe có vẻ như nó sẽ làm việc tốt, nhưng tôi muốn đầu vào của bạn đầu tiên.
Câu hỏi tôi đã liên kết ở trên giải thích cách bảng tình bạn của tôi hoạt động, trong trường hợp đó giúp bạn giúp tôi với điều này.
'MY_DATA_ACCESS_LAYER.IS_FRIEND (my_id, other_id)' - Sử dụng cơ sở dữ liệu. Yêu cơ sở dữ liệu. Lo lắng về "những thứ khác" sau này. (Một phần mở rộng tầm thường là làm cho nó mất nhiều ID để xử lý cùng một lúc, vấn đề là: nếu nó ẩn trong DAL, nó không thực sự quan trọng và khi nào - nhưng thực sự * nếu * - hiệu suất * là * một vấn đề có nhiều cách để tiếp cận nó.) –
@pst, bạn có thể giải thích rằng với tôi tốt hơn một chút không? Chính xác là gì 'MY_DATA_ACCESS_LAYER.IS_FRIEND (my_id, other_id)' và tôi sẽ sử dụng nó như thế nào? bạn có thể cung cấp một ví dụ? – vertigoelectric
Nó là một phần của DAL (Lớp Truy cập Dữ liệu) và sẽ "sử dụng cơ sở dữ liệu". Cái tên này thật kinh khủng và được chọn để nổi bật. Các khung công tác khác nhau sẽ tạo điều kiện cho các phương pháp tiếp cận DAL khác nhau, nhưng có vẻ như điều này đã có mặt: Đó là, * không * lo lắng về phiên làm việc hoặc công cụ in_array.Chỉ lo lắng về việc "hạn chế sử dụng DB tầm thường" khi có trường hợp sử dụng hiệu năng * đã được chứng minh * không đáp ứng được các yêu cầu. –