Tôi lưu trữ các chi tiết người dùng khác nhau trong cơ sở dữ liệu MySQL của tôi. Ban đầu nó được thiết lập trong các bảng khác nhau có nghĩa là dữ liệu được liên kết với UserIds và xuất ra thông qua các cuộc gọi phức tạp đôi khi hiển thị và thao tác dữ liệu theo yêu cầu. Thiết lập một hệ thống mới, nó gần như hợp lý để kết hợp tất cả các bảng này thành một bảng lớn có nội dung liên quan.Cái nào hiệu quả hơn: Nhiều bảng MySQL hoặc một bảng lớn?
- Đây có phải là trợ giúp hay cản trở không?
- Cân nhắc tốc độ trong việc gọi, cập nhật hoặc tìm kiếm/thao tác?
Dưới đây là một ví dụ về một số cấu trúc của tôi bảng (s):
- người dùng - UserId, tên người dùng, email, mật khẩu được mã hóa, ngày đăng ký, ip
- user_details - dữ liệu cookie, tên, địa chỉ, thông tin liên lạc, liên kết, dữ liệu nhân khẩu học
- user_activity - đóng góp, trực tuyến cuối cùng, xem cuối cùng
- user_settings - hiển thị hồ sơ thiết lập
- user_interests - biến nhắm mục tiêu quảng cáo
- user_levels - quyền truy cập
- user_stats - hits, trả khớp
Edit: Tôi đã bỏ phiếu tán tất cả các câu trả lời cho đến nay, tất cả họ đều có những yếu tố mà chủ yếu trả lời câu hỏi của tôi.
Hầu hết các bảng đều có mối quan hệ 1: 1 là lý do chính khiến chúng không chuẩn hóa chúng.
Sẽ có vấn đề gì nếu bảng trải dài trên hơn 100 cột khi một phần lớn các ô này có thể vẫn còn trống?
[câu hỏi khác] này (http://stackoverflow.com/questions/8685621/what-is-the-best-database-schema-to-support-values-that-are-only-appropriate-to/9460541 # 9460541) có thể hữu ích quá –