Cách bạn có nó là cách tối ưu nhất cho đến khi hạn chế về thời gian. Chắc chắn, nó chiếm nhiều dung lượng hơn, nhưng đó là một phần của sự cân bằng giữa không gian-thời gian - Nếu bạn muốn nhanh hơn, bạn sử dụng nhiều không gian hơn; nếu bạn muốn sử dụng ít dung lượng hơn, nó sẽ chạy chậm hơn (trung bình).
Ngoài ra, hãy nghĩ đến tương lai. Ngay bây giờ, có thể bạn đang chọn quốc gia cho từng người dùng, nhưng hãy đợi. Nhờ sự kỳ diệu của phạm vi creep, một ngày nào đó, ứng dụng của bạn sẽ cần chọn tất cả người dùng ở một quốc gia nhất định, tại thời điểm đó, việc quét trường "COUNTRY" của mỗi người dùng để tìm các kết quả phù hợp sẽ cực kỳ chậm, trái ngược với việc chỉ quay ngược lại USER_COUNTRY_REL bảng như bạn có thể làm bây giờ.
Nói chung, đối với mối tương quan 1-1 hoặc 1-nhiều, bạn có thể liên kết bằng khóa ngoại. Đối với mối tương quan nhiều-nhiều, bạn muốn có một bảng quan hệ giữa hai. Tình huống này là một mối quan hệ nhiều-nhiều, vì mỗi người dùng có nhiều quốc gia và mỗi quốc gia có nhiều người dùng.