Définition d’un domaine en plage de valeurs.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Définition d’un domaine en plage de valeurs.

par Henri » 19 juin 2007, 10:23

C'est marrant, mais je viens à l'instant de remplir une enquête de satisfaction client et ils me demandaient mon âge. Pas ma date de naissance. Je pense qu'il est imprudent de dire "Jamais", cela dépend de l'application.

Sinon, pour en revenir au problème, dans MySQL, il y a une syntaxe

Code : Tout sélectionner

create table ... check(expression)
Mais elle ne semble fonctionner qu'avec les tables InnoDB et encore, je n'ai jamais trouvé dans la doc où cette syntaxe était expliquée (mais cela ne veut pas dire que cela n'existe pas).

Sinon, depuis MySQL 5.0.2 et quelque soit le moteur, tu as la possibilité de poser des triggers sur une table qui te permettront de remettre l'âge dans l'intervalle désiré. Regarde l'exemple en bas de cette page
http://dev.mysql.com/doc/refman/5.0/fr/ ... ggers.html

par Cyrano » 18 juin 2007, 18:57

Alors tant qu'à optimiser, voici un conseil pratique :
Ne JAMAIS stocker une valeur calculée dans une base de données. Ici, on dirait que tu voudrais enregistrer un âge : la valeur qui sera enregistrée ne sera bonne qu'au moment de l'enregistrement et obsolète dans les minutes qui suivent. Donc on enregistre une date de naissance et on détermine l'âge par calcul sur la base de cette donnée, soit directement dans la requête soit par programmation après avoir récupéré ladite donnée :)

Définition d’un domaine en plage de valeurs.

par djmustru » 18 juin 2007, 17:22

Bonjour à tous,

Je cherche à optimiser ma BDD MySql et j'aimerai définir une plage de valeur. J'ai vu que c'était possible dans un de mes cours sur la modélisation logique des données mais je ne sait comment faire en mysql :
Définition d’un domaine en plage de valeurs; ex. cliAge : [0, 120]
Merci d'avance :D