Ich kann nicht wirklich eine Lösung für mein Problem finden und die Frage ist: Muss ich wirklich einen Primärschlüssel hier erstellen?Primärschlüssel auf isolierte Tabelle
Einzelheiten
hat meine Website eine Tabelle in einer Datenbank translations
genannt, in denen ich jedes Wort einzigen Satz/Put mit unterschiedlichen Übersetzungen. Ich habe diese Struktur:
id | lang | text
-------------------
01 | 01 | hello
01 | 02 | ciao
01 | 03 | salut
02 | 01 | surname
02 | 02 | cognome
02 | 03 | nom
Das Feld id
zu einem Wort verbunden ist, lang
das Feld ist eine Zahl, die die Übersetzung (01 = Englisch, 02 = Italienisch, 03 = französisch) und die text
ist die Übersetzung anzeigt, von diesem Wort.
In diesem Fall, wenn ich (zum Beispiel) das Wort hallo brauche ich weiß, dass es ID = 1 hat und dann kann ich die Sprache wählen.
Ist dies ein guter Weg, um diese Art von Tabelle zu erstellen? Ich bin mir nicht sicher, aber ich finde das einfach, weil ich anrufen kann:
SELECT text FROM tablename WHERE id = ? AND lang = ?
Sie können die? weil ich Params mit PDO binde. Die 'lang' ist eine Konstante, die aus einem Cookie (01,02,03) abgerufen wird.
Wichtiger Hinweis: hier habe ich keinen Primärschlüssel, ich habe nur gesetzt id
und lang
auf einzigartige
verwenden Wenn Sie einen eindeutigen Index haben, sollten Sie, dass ein Primärschlüssel machen. Ich glaube, du verwechselst _primary key_ mit _surrogate key_. Schaut beide Begriffe nach. Sie können auch eine Antwort auf diese Frage auf DBA.SE lesen: http://dba.stackexchange.com/questions/6108/should-every-table-have-a-single-field-surrogate-artificial-primary-key/6110 # 6110 –