Hiện tại em muốn xây dựng một ứng dụng quản lý sinh viên sử dụng NoSQL, gồm 2 đối tượng là SinhVien và LopHoc, em đang phân vân việc xây dựng database cho 2 thằng theo kiểu nào để tối ưu quá trình đọc ghi dữ liệu:
- kiểu 1: SinhVien chứa danh sách lớp học mà SinhVien đó tham gia
- kiểu 2: LopHoc chứa danh sách SinhVien học trong lớp học đó
- kiểu 3: SinhVien chứa danh sách LopHoc, LopHoc chứa danh sách SinhVien
Nếu theo kiểu 1 thì khi hiển thị SinhVien theo LopHoc, ta phải duyệt từng SinhVien để kiểm tra có học lớp đó hay không, nếu chỉ có 20 SinhVien trong lớp đó nhưng có tổng cộng 1000 SinhVien thì vẫn phải duyệt 1000 lần, theo kiểu 2 thì ngược lại.
Nếu theo kiểu 3 thì lấy dữ liệu nhanh, nhưng ghi thì phải phải ghi ở 2 bảng, cộng thêm việc trùng lặp dữ liệu
Mọi người cho em hỏi còn cách nào tối ưu hơn không ạ