Salut,
• T'as la solution bouseuse à base d'ENUM (un ENUM de 0 à 100), hyper-lourd mais fonctionnel.
• T'as la solution vaseuse à base de checks coté client (ton code client, ie PHP ou autre, se charge de vérifier que la valeur est entre 0 et 100).
• T'as la solution bancale des clefs étrangères: tu fais une table avec une seule colonne "valeur" de 101 lignes (de 0 à 100) et tu fais une clef étrangères depuis la table contenant les valeurs à restreindre vers cette table d'entiers (lourds, mais extensible, centralisé, sans trigger).
• T'as la solution à coup de TRIGGER (un trigger "BEFORE UPDATE" qui vérifie que la valeur est entre 0 et 100, si non, le TRIGGER fait un SIGNAL pour arrêter l'opération).
• T'as la solution d'une procedure, au lieu de passer par la query; elle peut alors vérifier que la valeur est dans l'intervalle fixé avant de faire l'insert/update (et si elle n'est pas dans l'intervalle, pouf, SIGNAL)
Moi, j'irai sur les TRIGGER ou PROCEDURE, car cela me semble parfaitement adapté (à défaut d'avoir des syntaxes CHECK en MySQL).
• T'as la solution bouseuse à base d'ENUM (un ENUM de 0 à 100), hyper-lourd mais fonctionnel.
• T'as la solution vaseuse à base de checks coté client (ton code client, ie PHP ou autre, se charge de vérifier que la valeur est entre 0 et 100).
• T'as la solution bancale des clefs étrangères: tu fais une table avec une seule colonne "valeur" de 101 lignes (de 0 à 100) et tu fais une clef étrangères depuis la table contenant les valeurs à restreindre vers cette table d'entiers (lourds, mais extensible, centralisé, sans trigger).
• T'as la solution à coup de TRIGGER (un trigger "BEFORE UPDATE" qui vérifie que la valeur est entre 0 et 100, si non, le TRIGGER fait un SIGNAL pour arrêter l'opération).
• T'as la solution d'une procedure, au lieu de passer par la query; elle peut alors vérifier que la valeur est dans l'intervalle fixé avant de faire l'insert/update (et si elle n'est pas dans l'intervalle, pouf, SIGNAL)
Moi, j'irai sur les TRIGGER ou PROCEDURE, car cela me semble parfaitement adapté (à défaut d'avoir des syntaxes CHECK en MySQL).