Actualmente estoy planeando desarrollar una aplicación de transmisión de música. Y me pregunto qué sería mejor como clave principal en mis tablas en el servidor. Un ID int o una cadena única.Diseño de la base de datos Primay Key, ID vs String
Métodos 1:
canciones Tabla: SongID (int), título (cadena), * ** Artista (cadena), Longitud (int) *, ** Album (cadena)
Género Tabla Género (cadena), Nombre (cadena)
SongGenre: *** **** SongID (int), *** Ge NRE **** (cadena)
Método 2
canciones Tabla: SongID (int), título (cadena), * ArtistaID ** (int), longitud (int) *, ** ALBUMID (int)
Género Tabla GenreID (int), nombre (cadena)
SongGenre: *** **** SongID (int), *** **** GenreID (int)
Clave: Negrita = Clave principal, * El campo ** = clave externa
Actualmente estoy diseñando el método 2 como creo acelerará el rendimiento de búsqueda y usará menos espacio ya que un int ocupa mucho menos espacio que una cadena.
¿Hay alguna razón por la cual esta no sea una buena idea? ¿Hay algo que deba saber?
absolutamente 1. Una ID debe ser (casi siempre) una INT, cualquier otra cosa no tiene mucho sentido (excepto en algunos casos seleccionados) –
Agregaré que también debe poner un índice único en el nombre del género para evitar tener tres géneros llamados 'Blues'. Siempre coloque un índice único en la clave natural, si existe. – HLGEM
-1: estas son las razones equivocadas para tomar decisiones de diseño. Tome las decisiones de diseño en función de si es el diseño correcto o no. Luego, si hay problemas de rendimiento, sintonícelo y rediseñelo según sea necesario. –