Esempio:
nel database ho un record come questo:
{
id: 53,
part_number: 'MOTOR-OIL',
description: 'Motor Oil'
}
Desidero utilizzare un collegamento che mostri questo record. Potrei fare riferimento al record in questo modo, usando la chiave surrogata:
http://localhost/show_record/53
oppure potrei utilizzare un identificatore specifico del dominio in questo modo, a condizione che sia univoco:
http://localhost/show_record/MOTOR-OIL
Esiste una best practice di un framework relativo al decidere quale usare? È accettabile utilizzare la chiave surrogata?
Note:
Nel mio caso, la chiave surrogata / artificiale è un PRIMARY KEY
ed è improbabile che cambi. Il numero di parte potrebbe tuttavia cambiare, mantenendo la stessa chiave surrogata.
Nel mio caso il part_number
dell'entità di dominio è univoco, ma nel caso generale, potrebbe non essere il caso, e potrebbero essere necessari più parametri per identificare univocamente un record, mentre id
essendo una chiave surrogata tipicamente rimangono unici per varie convenzioni di database.