Mówiąc, że daty będą niepowtarzalne, masz na myśli myśl będą unikatowe, czy też ich wyjątkowość gwarantuje stwierdzenie problemu? Z mojego doświadczenia wynika, że niektóre rzeczy okazują się znacznie mniej wyjątkowe, niż można sobie wyobrazić (przykładem są amerykańskie numery ubezpieczenia społecznego).
Jeśli wartości dat nie są gwarantowane jako unikatowe, należy dodać klucz całkowity.
Jeśli wartości dat są gwarantowane jako niepowtarzalne, czy się zmieniają? Jeśli się zmienią, czy odwołują się do nich inne tabele? Jeśli obie odpowiedzi brzmią „tak”, prawdopodobnie powinieneś dodać klucz całkowity.
Jeśli wartości dat są gwarantowane jako unikatowe i nie zmieniają się lub nie są przywoływane, możesz ich użyć jako klucza. Zwykłe wartości DATETIME mają 8 bajtów, a standardowe wartości INTEGER to 4 bajty, co może mieć niewielki wpływ na indeksowanie. Jeśli Twoje wartości dat są tylko datami lub są z dokładnością do minuty lub mniej i mieszczą się w bardziej ograniczonym zakresie dozwolonym przez typ, możesz użyć funkcji SMALLDATETIME i uzyskać te wartości indeksu do 4 bajtów.