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 mình. 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 đôi khi phức tạp để 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, gần như hợp lý khi 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.
- Điều này sẽ là một sự trợ giúp hay trở ngại?
- Cân nhắc tốc độ khi gọi, cập nhật hoặc tìm kiếm / thao tác?
Đây là một ví dụ về một số (các) cấu trúc bảng của tôi:
- 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ỉ, chi tiết liên hệ, chi nhánh, dữ liệu nhân khẩu học
- user_activity - đóng góp, lần trực tuyến cuối cùng, lần xem cuối cùng
- user_settings - cài đặt hiển thị hồ sơ
- user_interests - các biến có thể nhắm mục tiêu quảng cáo
- user_levels - quyền truy cập
- user_stats - lượt truy cập, dấu hiệu
Chỉnh sửa: Tôi đã ủng hộ tất cả các câu trả lời cho đến nay, tất cả chúng đều có các yếu tố về cơ bản trả lời câu hỏi của tôi.
Hầu hết các bảng có mối quan hệ 1: 1, đó là lý do chính khiến chúng không chuẩn hóa.
Sẽ có vấn đề gì xảy ra nếu bảng kéo dài qua hơn 100 cột khi một phần lớn các ô này có khả năng vẫn trống?