Ostatnie pytanie na stackoverflow wywołał dyskusję o niezmienności kluczy podstawowych. Myślałem, że to taka zasada, że klucze podstawowe powinny być niezmienne. Jeśli istnieje szansa, że któregoś dnia klucz podstawowy zostanie zaktualizowany, pomyślałem, że powinieneś użyć klucza zastępczego. Jednak nie ma go w standardzie SQL, a niektóre funkcje „aktualizacji kaskadowej” RDBMS pozwalają na zmianę klucza podstawowego.
Więc moje pytanie brzmi: czy nadal jest to zła praktyka, aby mieć klucz podstawowy, który może się zmienić? Jakie są wady, jeśli w ogóle, posiadania zmiennego klucza podstawowego?