Cấu trúc dữ liệu chính của các trang web mạng xã hội là graph. Trên facebook, đồ thị không được hướng dẫn (Khi bạn là bạn của ai đó, họ là bạn của bạn). Trên twitter đồ thị được đạo diễn (Bạn theo dõi ai đó, nhưng họ không nhất thiết phải theo bạn).
Hai cách phổ biến để biểu thị đồ thị là adjacency lists và adjacency matrices.
Danh sách kề chỉ đơn giản là danh sách các cạnh trên biểu đồ. Xem xét một người dùng có userid nguyên.
User1, User2
1 2
1 3
2 3
Việc giải thích vô hướng của những hồ sơ này là sử dụng 1 là bạn bè với những người dùng 2 và 3 và sử dụng 2 cũng kết bạn với người sử dụng 3.
Đại diện này trong một bảng cơ sở dữ liệu là tầm thường. Đó là mối quan hệ nhiều đến nhiều bảng mà chúng ta đã quen thuộc. Các truy vấn SQL để tìm bạn bè của một người dùng cụ thể khá dễ viết.
Bây giờ bạn đã biết bạn bè của một người dùng cụ thể, bạn chỉ cần tham gia các kết quả đó vào bảng cập nhật. Bảng này chứa tất cả các cập nhật của người dùng được lập chỉ mục bởi id người dùng.
Chừng nào tất cả các bảng được lập chỉ mục đúng cách, bạn sẽ có một thời gian khá dễ dàng thiết kế các truy vấn hiệu quả để trả lời các câu hỏi bạn quan tâm đến.
Nguồn
2009-04-17 23:17:10
+1 đề cập đến denormalization, đây không phải là rõ ràng với SQL cũ wor ld nơi 3NF đã là ngôi sao hướng dẫn trong một thời gian dài. (http://en.wikipedia.org/wiki/Third_normal_form) – Crypth