Une autre option serait d'avoir une table de validation pour la colonne d'état, appelé quelque chose comme VAL_GAME_STATUS. GAMES.STATUS serait une clé étrangère à VAL_GAME_STATUS et VAL_GAME_STATUS migt ressembler à
CREATE TABLE VAL_GAME_STATUS -- Oracle format - modify as needed for other DB
(STATUS NUMBER PRIMARY KEY,
DESCRIPTION VARCHAR2(50) NOT NULL UNIQUE,
SORT_ORDER NUMBER NOT NULL UNIQUE);
Compte tenu de cela, la requête pour récupérer les résultats des jeux devient triés
SELECT g.*
FROM GAMES g
INNER JOIN VAL_GAME_STATUS s
USING (STATUS)
ORDER BY s.SORT_ORDER;
L'inconvénient est que vous devez Faites une jointure pour trier les données, mais c'est un petit succès car VAL_GAME_STATUS est une petite table qui peut probablement être gardée en mémoire. L'avantage est que vous pouvez changer l'ordre de tri à la volée sans toucher votre code. L'ajout de nouvelles valeurs de statut avec un ordre de tri approprié est également facile.
Partagez et appréciez.
cela aurait été la bonne réponse, mais le PO a demandé l'ordre 1,0,2 – ajacian81
@ ajacian81: Le commentaire avant que cela contredit, mais je pense que la cohérence des exemples donne assez d'une idée pour savoir comment changer pour répondre aux besoins . –