Bonsoir ! C'est encore moi --'
Toujours sur ma BDD type AlloCiné, je cherche à mettre une valeur max pour un INT pour la note d'un film ... En clair, je voudrais que l'on puisse mettre 5 ou 10 comme valeur max ... Est-ce possible ?
Merci d'avance ;)
Version imprimable
Bonsoir ! C'est encore moi --'
Toujours sur ma BDD type AlloCiné, je cherche à mettre une valeur max pour un INT pour la note d'un film ... En clair, je voudrais que l'on puisse mettre 5 ou 10 comme valeur max ... Est-ce possible ?
Merci d'avance ;)
Ca se fait soit côté applicatif, soit au moment de l'insertion avec un trigger.
ça c'est débile, il faudrait le faire dans toutes les applications actuelles et futures !!!!!
ça c'est contre performant.... !Citation:
soit au moment de l'insertion avec un trigger.
Mieux vaudrait faire une contrainte CHECK ! Malheureusement, MySQmerde ne les acceptent toujours pas !
Extrait de la doc :
"The CHECK clause is parsed but ignored by all storage engines"
Bref, prenez un vrai SGBDR, pas un ersatz ! A me lire : http://blog.developpez.com/sqlpro/p9...oudre_aux_yeux
A +
Bonsoir,
Si vous souhaitez que la note des films prenne une valeur maximale, vous pouvez la définir avec la clause DEFAULT. Il faudra lancer une requête ALTER TABLE pour appliquer cette contrainte. Par exemple, si les notes vont de 0 à 10, vous pouvez saisir :
TINYINT consomme 1 octet tandis que INT en consomme 4. Vous économiserez ainsi 3 octets pour chaque ligne dans votre table.Code:ALTER TABLE Film MODIFY Note TINYINT NOT NULL DEFAULT 10;
Bonsoir
Je suis étonné de la réponse de la réponse de MacFly58. Je ne vois pas en quoi mettre une valeur par défaut de "10" empêcherait de saisir des valeurs supérieures. JE suis preneur d'explications.
Pierre
Bonsoir,
Mettre une valeur par défaut de "10" n'empêchera pas de saisir des valeurs supérieures. L'explication, c'est que j'ai mal compris le besoin exprimé par VLorde.
Dans ce cas, outre un ensemble de triggers, une autre solution est envisageable et parfois préférable.
Il est possible de créer une table "Note" contenant les notes des films (de 1 à 10 par exemple) et que la colonne Note de la table "Film" référence la clé primaire de la table "Note".
La création de cette clé étrangère permettra de définir un intervalle de validité pour toutes les notes.