Imaginez que j'ai une table Orders avec les colonnes OrderID (PK), CustomerID, CustomerOrderN et ainsi de suite. Maintenant, je dois ajouter une possibilité de "fermer" les commandes en spécifiant une raison pour laquelle la commande est fermée (par exemple "prix offert est trop élevé pour le client", "non disponible", "client demandé de fermer la commande").Comment modéliser les états Open/Closed dans une base de données?
Question 1. Quelle serait la meilleure et la plus correcte façon de l'implémenter dans la conception de base de données?
Je pense que le meilleur moyen est de créer une colonne fermée qui peut être nulle (si l'ordre est ouvert) et sinon null (c'est-à-dire si l'ordre est fermé) alors la valeur pointe vers une autre table OrderCloseReasons. Et si j'ai déjà :) une colonne booléenne Fermée dans la table Commandes, et maintenant je dois implémenter la possibilité de spécifier des raisons de fermeture. Je ne peux pas refactoriser beaucoup parce que le système n'est pas si petit déjà, donc il est difficile de refactoriser le schéma de base de données. Quel serait le meilleur moyen d'ajouter la possibilité de spécifier les raisons de la fermeture dans un tel cas?
Je pense que si j'ajoute juste la colonne CloseReasonID à la table Orders, ce ne sera pas bon. Mais je ne suis pas sûr.
Merci d'avance.
Bonne question, mais je vous invite à réviser le titre de votre question. Peut-être, quelque chose comme "Comment modéliser les états Open/Closed dans une base de données" –