L'uso di una singola colonna suona appropriato, a condizione che i diversi valori di stato siano stati legittimamente differenti della stessa cosa. Questo è fondamentalmente ciò che ha detto anche Razethestray.
Se crei una tabella di ricerca dello stato separata come suggerisce Michael Durrant, puoi aggiungere facoltativamente le varie colonne booleane a quella tabella.
L'aggiunta di colonne di flag aggiuntive a una tabella di ricerca non è una tecnica comune, nella mia esperienza, ma ho provato un po 'e mi piace come mi permette di mantenere magicamente il codice dell'applicazione sapendo che lo stato "In corso" significa " non è possibile aggiungere elementi ", ad esempio. Invece, potrei avere una colonna AllowsAddingItems sulla mia tabella di stato, e il valore in quella colonna per lo stato "In corso" sarebbe falso. In questo modo, il mio codice applicazione non deve essere consapevole di quali siano tutti i diversi stati possibili; controlla solo che l'attributo AllowsAddingItems sia associato allo stato corrente.