yo,
Was ist "pk"? Und kannst du mir sagen wie das geht, das die "lücken" automatisch gefüllt werden? Und mit was denn dann? Mit dem alten Wert oder letzter Datensatz+1? Ich versteh das nicht ganz. Sry.
ein pk ist die abkürzung für einen primary key, der einen datensatz eindeutig identifiziert. und genau das ist auch schon die einzige aufgabe eines pk. deshalb musst du lücken gar nicht füllen, es macht keine sinn, es zu versuchen. wenn lücken entstehen, dann lass sie bestehen. dadurch hast du keinen nachteil.
Wozu beides? Mir ging es nur um eine eindeutige Identifizierung.
Was sollten 2 Spalten zur Identifizierung für einen Sinn machen?
grundsätzlich reicht ein pk pro tabelle. heutzutage nimmt man dafür in aller regel einen künstlichen schlüssel, sprich einen auto-incrementwert. es kann aber gut sein, dass man für manche tabellen (entiäten) zusätzlich noch einen zweiten eindeutigen bezeichner haben will, zum beispiel eine produktname. der künstliche pk dient mehr oder weniger der datenbank, um den datensatz eindeutig zu identifizieren und der produktname hilft uns menschen, das ding bei einem namen zu nennen.
Ilja