Mam kilka tabel, w których rekordy można jednoznacznie identyfikować z kilkoma szerokimi obszarami działalności. W przeszłości używałem tych pól jako PK, mając na uwadze następujące korzyści:
- Prostota; nie ma żadnych obcych pól i tylko jeden indeks
- Grupowanie pozwala na szybkie łączenie scalające i filtry oparte na zakresie
Jednak słyszałem obudowę wykonaną za stworzenie syntetycznego IDENTITY INT
PK, a zamiast egzekwowania klawisz biznesowych z osobnym UNIQUE
ograniczeń. Zaletą jest to, że wąski PK tworzy znacznie mniejsze wskaźniki wtórne.
Jeśli tabela nie ma innych wskaźników niż PK, nie widzę żadnego powodu, aby faworyzować drugie podejście, chociaż w dużej tabeli prawdopodobnie najlepiej założyć, że wskaźniki mogą być konieczne w przyszłości, a zatem faworyzują wąskie syntetyczne PK . Czy brakuje mi jakichkolwiek uwag?
Nawiasem mówiąc, nie sprzeciwiam się używaniu kluczy syntetycznych w hurtowniach danych, jestem tylko zainteresowany, kiedy użyć jednego szerokiego PK, a kiedy użyć wąskiego PK i szerokiej Wielkiej Brytanii.