Come gestisci la chiave duplicata se la colonna "Stato del record" è impostata come cancellata

3

Prima di tutto, mi dispiace se il titolo è un po 'confuso.

Stavo leggendo questa domanda ( È una cattiva pratica avere una colonna" record status "in una tabella di database? ), e come l'idea di utilizzare lo stato dei record per alcune tabelle. Quindi, in modo da eliminare i record dalla tabella, impostare lo stato dei record su "cancellato". La mia domanda è se, ad esempio, il record è nella tabella del prodotto. E la tabella del prodotto avrà una colonna "SKU" unica. Se un record è contrassegnato come cancellato, l'utente non vedrà di nuovo quel record. In futuro, l'utente potrebbe voler inserire un nuovo record con la stessa SKU di quello precedentemente (logicamente) cancellato. Ma continuerà comunque a duplicare la chiave primaria nel database. Come dovrei gestire questa situazione?

    
posta Reynaldi 02.08.2016 - 05:53
fonte

1 risposta

3

Normalmente l'eliminazione logica dei record viene utilizzata quando il PK della tabella è una sequenza autoincrementale.

Penso che la tabella dei prodotti non sia un buon candidato per una colonna "cancellata" logica. Questa soluzione è più adatta per cose come le fatture.

Detto questo una buona soluzione sta dicendo all'utente: "Il prodotto che stai tentando di inserire esiste già, sebbene con uno stato inattivo. Vuoi riportarlo a uno stato attivo?"

    
risposta data 02.08.2016 - 14:01
fonte

Leggi altre domande sui tag