Mam tabelę z kompozytowym kluczem podstawowym (składającym się z 4 kolumn), która służy do zapewnienia, że żadne duplikaty nie zostaną wprowadzone do tabeli. Potrzebuję teraz nowej tabeli, która będzie musiała odwoływać się do kluczy w tej tabeli jako kluczy obcych.
Moje pytanie brzmi, które podejście jest bardziej wydajne dla prędkości wyszukiwania:
1) Czy utworzę nową tabelę zawierającą wszystkie 4 kolumny i odwołam się do nich w kluczu obcym.
lub
2) Czy utworzę nową kolumnę tożsamości w tabeli klucza podstawowego i użyję jej jako klucza obcego w nowej tabeli?
Oczekuje się, że ta baza danych pomieści bardzo dużą ilość danych, więc zbudowałem ją do tej pory w celu zminimalizowania ilości danych przechowywanych w każdej tabeli. Mając to na uwadze, najlepszym rozwiązaniem będzie opcja 2, ponieważ zapisam 2 kolumny int i kolumnę datetime dla każdego wiersza, ale chcę uniknąć wydłużania czasu wyszukiwania, jeśli nie jest to konieczne.
INT IDENTITY
An) - znacznie ułatwia to odwoływanie się do tej tabeli i dołączanie do niej. Aby uniknąć duplikatów, nałóż ograniczenie UNIKALNE na te cztery kolumny. Ponadto: wąskie klucze podstawowe są znacznie lepsze ze względu na wydajność (jeśli są używane jako klucz klastrowania)