Derzeit habe ich eine categories
Tabelle mit 2 Spalten - category VARCHAR(50) NOT NULL PRIMARY KEY
und parent VARCHAR(50)
. Die parent
Spalte ist ein Fremdschlüssel (FK) für die category
Spalte.
Dies scheint der naheliegendste Ansatz zu sein. In meinem Kopf läuten jedoch Alarmglocken, weil ich eine VARCHAR
Spalte für einen Primärschlüssel verwende, was den Vorgang beim Abfragen der Tabelle verlangsamen kann.
Ich könnte eine dritte Spalte namens cat_id INT AUTO_INCREMENT
PK einführen und diese als PK festlegen, aber es würde eine neue Spalte einführen, die keine Bedeutung hat.
Welche anderen Überlegungen sollten außer dem, was schneller wäre, berücksichtigt werden?
NB Ich gehe davon aus, dass es höchstens 1000 Kategorien geben wird, daher ist die Anzahl der Zeilen nicht sehr hoch. Die categories
PK-Spalte ist jedoch eine Referenzspalte für viele Fremdschlüssel in anderen Tabellen.
Sollte ich auch (eindeutige) Benutzernamen als PKs verwenden?
quelle