Những điều cần xem xét với các phương pháp tiếp cận của bạn
Lưu trữ hồ sơ người dùng trong bảng người dùng
- Đây thường sẽ là cách tiếp cận nhanh nhất để lấy dữ liệu hồ sơ, mặc dù bạn có thể có nhiều dữ liệu thừa ở đây (các cột có thể không có bất kỳ thông tin nào trong đó).
- Nhanh chóng (đặc biệt nếu bạn chỉ kéo các cột bạn cần từ db)
- Dữ liệu bị lãng phí
- Khó làm việc / bảo trì hơn (được cho là với các giao diện như PHPMyAdmin)
Lưu trữ hồ sơ người dùng trong Bảng User_Profile mối quan hệ 1-1 với người dùng
- Quá trình tham gia vẫn diễn ra khá nhanh chóng và bạn có thể loại bỏ một số dữ liệu dư thừa nếu hồ sơ người dùng không được tạo trừ khi người dùng điền vào hồ sơ.
- Dễ dàng làm việc hơn
- Đã từng chậm hơn một chút do tham gia (hoặc truy vấn thứ hai)
Lưu trữ Hồ sơ người dùng dưới dạng thuộc tính và giá trị trong bảng
*I E. Bảng để lưu trữ các tùy chọn có thể có, bảng để lưu trữ user_id, option_id và giá trị *
- Không có dữ liệu thừa được lưu trữ, tất cả dữ liệu đều có liên quan
- Phương pháp chuẩn hóa nhất
- Truy xuất và cập nhật dữ liệu chậm hơn
Ấn tượng của tôi là hầu hết các trang web sử dụng phương pháp thứ 2 và lưu trữ thông tin hồ sơ trong bảng thứ hai, cách phổ biến của hầu hết các trang web lớn hơn là khử chuẩn hóa cơ sở dữ liệu (twitter, facebook) để đạt được hiệu suất đọc cao hơn với chi phí là hiệu suất ghi chậm hơn.
Tôi nghĩ rằng giữ thông tin hồ sơ trong bảng thứ hai có thể là cách tốt nhất khi bạn đang xem 50.000 hồ sơ. Để có hiệu suất tối ưu, bạn muốn giữ dữ liệu được viết tách biệt nhiều với dữ liệu được đọc nhiều để đảm bảo bộ nhớ đệm có thể hoạt động hiệu quả.