Derzeit habe ich eine categoriesTabelle mit 2 Spalten - category VARCHAR(50) NOT NULL PRIMARY KEYund parent VARCHAR(50). Die parentSpalte ist ein Fremdschlüssel (FK) für die categorySpalte.
Dies scheint der naheliegendste Ansatz zu sein. In meinem Kopf läuten jedoch Alarmglocken, weil ich eine VARCHARSpalte 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_INCREMENTPK 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 categoriesPK-Spalte ist jedoch eine Referenzspalte für viele Fremdschlüssel in anderen Tabellen.
Sollte ich auch (eindeutige) Benutzernamen als PKs verwenden?