Ich plane derzeit, eine Musik-Streaming-Anwendung zu entwickeln. Und ich frage mich, was wäre besser als Primärschlüssel in meinen Tabellen auf dem Server. Eine ID int oder eine eindeutige Zeichenfolge.Database Design Primay Schlüssel, ID vs String
Methoden 1:
Songs Tabelle: songID (int), Titel (string), * Artist ** (string), Länge (int), * Album ** (string
)Genre Tabelle Genre (string), Name (string)
SongGenre: *** songID **** (int), Ge *** NRE **** (string)
Methode 2
Songs Tabelle: songID (int), Titel (string), * ArtistID ** (int), Länge (int) * ALBUMID ** (int)
Genre Table GenreID (int), Name (string)
SongGenre: *** songID **** (int), *** GenreID **** (int)
Key: Bold = Primärschlüssel, * Feld ** = Foreign Key
Ich bin derzeit der Gestaltung Methode unter Verwendung von 2, wie ich es glauben wird die Lookup-Performance beschleunigen und weniger Platz verbrauchen, da ein Int viel weniger Platz benötigt als ein String.
Gibt es einen Grund, warum das keine gute Idee ist? Gibt es etwas, auf das ich achten sollte?
+1 absolut zu ermöglichen. Eine ID sollte (fast immer) ein INT sein - alles andere macht keinen großen Sinn (abgesehen von ein paar ausgewählten Fällen) –
Ich füge hinzu, dass Sie einen eindeutigen Index auf den Genre-Namen auch einfügen sollten drei Genres namens "Blues". Fügen Sie immer einen eindeutigen Index für den natürlichen Schlüssel ein, falls einer existiert. – HLGEM
-1: Dies sind die falschen Gründe für Designentscheidungen. Treffen Sie die Design-Entscheidungen basierend darauf, ob es das richtige _design_ ist oder nicht. Wenn es dann zu Leistungsproblemen kommt, stimmen Sie sie nach Bedarf ab. –