Vâng, có rất nhiều lý do tại sao điều này có thể là thiết kế tốt hơn.
Bạn có thể có mối quan hệ kế thừa / mở rộng, ví dụ: bạn có thể có một User
bảng và sau đó một Administrator
bảng có nhiều trường hơn. Cả hai bảng có thể có khóa chính là ID người dùng (và do đó có mối quan hệ 1: 1) nhưng không phải tất cả người dùng sẽ có bản ghi trong Administrator
bảng. Bạn sẽ cần một cái gì đó tương tự nếu bạn đang hỗ trợ một quy trình công việc, ví dụ như một ScheduledTask
bảng và CompletedTask
bảng.
Bạn có thể muốn có một bảng nhẹ cho dữ liệu thường được sử dụng User
và sau đó là một bảng lớn hơn để biết chi tiết bạn không cần thường xuyên UserDetails
. Điều này có thể cải thiện hiệu suất vì bạn sẽ có thể điều chỉnh nhiều bản ghi hơn vào một trang dữ liệu.
Bạn có thể muốn các quyền khác nhau cho các bảng, ví dụ User
vàUserCredentials
Bạn có thể muốn các chiến lược sao lưu khác nhau và do đó đặt hai bảng trên các phân vùng khác nhau, ví dụ Transaction
vàTransactionArchive
Bạn có thể cần nhiều cột hơn mức có thể được hỗ trợ trong một bảng, ví dụ: nếu có nhiều cột văn bản lớn mà bạn cần để có thể lập chỉ mục và nền tảng DB của bạn bị giới hạn ở các trang dữ liệu 4K hoặc whathaveyou.