Khi bạn nói ngày sẽ là duy nhất, bạn có nghĩa là bạn nghĩ rằng chúng sẽ là duy nhất, hay tính duy nhất của chúng được đảm bảo bởi tuyên bố của vấn đề? Theo kinh nghiệm của tôi, một số điều hóa ra lại là một việc tốt ít độc đáo hơn người ta tưởng tượng (số an sinh xã hội của Hoa Kỳ là một ví dụ).
Nếu các giá trị ngày không được đảm bảo là duy nhất, bạn nên thêm khóa số nguyên.
Nếu các giá trị ngày được đảm bảo là duy nhất, chúng có thay đổi không? Nếu chúng thay đổi, chúng có được tham chiếu bởi các bảng khác không? Nếu cả hai câu trả lời là "có", bạn có thể nên thêm khóa số nguyên.
Nếu các giá trị ngày được đảm bảo là duy nhất và không thay đổi hoặc không được tham chiếu, bạn có thể sử dụng chúng cho khóa. DATETIME thông thường là 8 byte và giá trị INTEGER tiêu chuẩn là 4 byte có thể có ảnh hưởng nhỏ đến việc lập chỉ mục. Nếu giá trị ngày của bạn chỉ là ngày tháng hoặc chỉ chính xác đến từng phút trở xuống và trong phạm vi hạn chế hơn được loại cho phép, bạn có thể sử dụng SMALLDATETIME và lấy các giá trị chỉ mục đó xuống còn 4 byte.