Đầu tiên, tôi nghĩ đó là một câu hỏi về mô hình hóa và xác định những gì bao gồm một thực thể riêng biệt. Giả sử bạn có customersmột và chỉ một đĩa đơn address. Tất nhiên bạn có thể triển khai mọi thứ trong một bảng duy nhất customer, nhưng nếu trong tương lai bạn cho phép anh ta có từ 2 địa chỉ trở lên, thì bạn sẽ cần phải cấu trúc lại điều đó (không thành vấn đề, nhưng hãy đưa ra quyết định có ý thức).
Tôi cũng có thể nghĩ đến một trường hợp thú vị không được đề cập trong các câu trả lời khác mà việc chia nhỏ bảng có thể hữu ích:
Hãy tưởng tượng, một lần nữa, bạn phải customerscó một đĩa đơn addresstừng, nhưng lần này nó không bắt buộc phải có một địa chỉ. Tất nhiên, bạn có thể triển khai điều đó dưới dạng một loạt các NULLcột có thể sử dụng chẳng hạn như ZIP,state,street. Nhưng giả sử rằng bạn có một địa chỉ, trạng thái không phải là tùy chọn, nhưng ZIP thì có. Làm thế nào để lập mô hình đó trong một bảng duy nhất? Bạn có thể sử dụng một ràng buộc trên customerbảng, nhưng việc phân chia trong một bảng khác sẽ dễ dàng hơn nhiều và làm cho khóa ngoại là NULLable. Bằng cách đó, mô hình của bạn rõ ràng hơn nhiều khi nói rằng thực thể address là tùy chọn và rằng đó ZIPlà thuộc tính tùy chọn của thực thể đó.