Ich bin der festen Überzeugung, dass jede Tabelle eine Möglichkeit zur eindeutigen Identifizierung eines Datensatzes haben sollte. Bei 99 % der Tabellen ist dies ein Primärschlüssel. Bei den übrigen kann man mit einem eindeutigen Index auskommen (ich denke hier an einspaltige Tabellen vom Typ "Look up"). Jedes Mal, wenn ich mit einer Tabelle ohne eine Möglichkeit zur eindeutigen Identifizierung von Datensätzen arbeiten musste, gab es Probleme.
Ich glaube auch, wenn Sie Surrogatschlüssel als PK verwenden, sollten Sie, wo immer möglich, einen separaten eindeutigen Index für jede Kombination von Feldern haben, aus denen der natürliche Schlüssel besteht. Mir ist klar, dass es allzu oft vorkommt, dass man keinen echten natürlichen Schlüssel hat (Namen sind nicht eindeutig oder das, was etwas eindeutig macht, könnte über mehrere Eltern-Kind-Tabellen verteilt sein), aber wenn Sie einen haben, stellen Sie bitte bitte sicher, dass er einen eindeutigen Index hat oder als PK erstellt wird.