Tôi muốn tạo một ứng dụng cho phép người dùng thêm người dùng khác vào danh sách bạn bè cá nhân. Trong cơ sở dữ liệu của tôi có một bảng gọi là 'người dùng'. Mỗi người dùng có một id duy nhất và một tên người dùng duy nhất, bây giờ mọi người dùng đều cần có danh sách bạn bè.Cách tốt nhất để lưu trữ các mảng có chiều dài biến đổi trong MySQL
Tôi nghĩ rằng tùy chọn tốt nhất để lưu các danh sách bạn bè này là tạo một bảng riêng biệt với hai colums, cho mọi người dùng. Một cột cho id của bạn bè và một cho tên người dùng của họ.
Tôi có thể tìm kiếm và truy xuất tên người dùng và id bạn bè cùng một lúc. Mặt khác, tôi sẽ cần phải tạo ra một số lượng lớn các bảng (hàng trăm, hàng ngàn, có thể là hàng triệu), một cho mỗi người dùng.
Điều này có giúp chọn bảng từ cơ sở dữ liệu chậm không? Điều này không cần thiết sẽ tốn một lượng không gian khổng lồ trên máy chủ? Có cách nào tốt hơn để lưu danh sách bạn bè cho mọi người dùng không?
Khoá chính sẽ là '(UserId, FriendId)' ann cả hai '(UserId)' và '(FriendId)' sẽ là Khóa ngoài cho 'UserTable (Id)' –