Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 09h19   #1
Invité de passage
 
Homme Patrick Raugel
Chercheur en informatique
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Patrick Raugel
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Santé

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 0
Points : 0
Par défaut Stockage d'instructions en "commentaire" dans une table MySQL

Bonjour,

Je consulte régulièrement ce forum car j'apprécie la qualité des discussions et le sérieux des contributions. Je trouve ici énormément de réponses à mes questions.

Il est possible d'ajouter un commentaire à une table MySQL et aux champs qui la composent. En ce qui me concerne, j'utilise ces zones de commentaires afin de stocker des codes que j'appelle ensuite dans un script afin de savoir quel traitement je dois appliquer à ce champ. Par exemple, dans la zone "comment" d'un champ où figure un identifiant correspondant à des données contenues dans une autre table, j'insère un code qui indique que ce champ doit être complété à partir d'une liste déroulante et j'ajoute le nom de la table cible où chercher les données, ainsi que les noms des champs où récupérer l'identifiant et la valeur dans la table cible. Cela me permet d'utiliser une petite application qui génère automatiquement des formulaires de saisie à partir des instructions contenues dans la zone commentaire.

Jusqu'à maintenant j'utilisais cette "fonctionnalité" uniquement en phase de recherche et développement et je m'interroge sur son emploi dans une application commerciale. Mes soucis concernent essentiellement la sécurité et j'aurais souhaité recueillir les avis d'utilisateurs qui utilisent de la sorte les zones de commentaires des table et champs MySQL.

Par avance, merci pour vos réponses !

Cordialement,
Papoupapa
Papoupapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 11h15   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par Papoupapa Voir le message
Par exemple, dans la zone "comment" d'un champ où figure un identifiant correspondant à des données contenues dans une autre table,
Ça s'appelle une clé étrangère et MySQL les gère du moment que la table utilise le moteur InnoDB.

Citation:
j'insère un code qui indique que ce champ doit être complété à partir d'une liste déroulante et j'ajoute le nom de la table cible où chercher les données, ainsi que les noms des champs où récupérer l'identifiant et la valeur dans la table cible.
Pour ce cas, précis, il vaut mieux interroger information_schema.

Citation:
Cela me permet d'utiliser une petite application qui génère automatiquement des formulaires de saisie à partir des instructions contenues dans la zone commentaire.
Pourquoi pas mais il vaut mieux interroger information_schema ou travailler avec des métadonnées.

Citation:
Jusqu'à maintenant j'utilisais cette "fonctionnalité" uniquement en phase de recherche et développement et je m'interroge sur son emploi dans une application commerciale. Mes soucis concernent essentiellement la sécurité et j'aurais souhaité recueillir les avis d'utilisateurs qui utilisent de la sorte les zones de commentaires des table et champs MySQL.
Ça ne me serait jamais venu à l'idée d'utiliser la zone de commentaires pour ça. Elle n'est pas faite pour ça à mon avis.

En principe, on développe une application utilisant une BDD en connaissant le schéma de données et les contraintes qui y figurent. Le mieux est même de ne mettre à disposition du développeur que les vues métier dont il a besoin.

Au fait, les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 15h13   #3
Invité de passage
 
Homme Patrick Raugel
Chercheur en informatique
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Patrick Raugel
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Santé

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 0
Points : 0
Merci CinePhil pour votre réponse.

Mon exemple était simple et il peut, c'est vrai, être traité au moyen d'une clé étrangère (table key_colum_usage).

La base information_schema contient en fait les caractéristiques des tables et colonnes (je laisse les champs à la campagne...), dont les commentaires que j'ajoute.

Je prends un autre exemple, toujours avec mon générateur automatique de formulaire. S'il s'agit de définir une "textarea", la zone commentaire inclut la taille de la zone de texte à inclure dans le formulaire (nombre de lignes et nombre de colonnes) pour chaque colonne. Si je me contente des données disponibles dans la table columns de information_schema, je n'ai accès qu'à la nature de la colonne et à la taille maximale de chaque valeur que peut contenir la colonne. Je peux définir une convention de dimensionnement en fonction de ces données mais ce n'est pas ce que je souhaite faire.

J'ai conscience que la bonne pratique consisterait à créer une table où seraient définies les règles (de dimensionnement mais également d'autres règles et instructions), mais je cherchais à avoir un retour d'expérience concernant cet emploi, dévoyé (?), de la colonne column_comment de la table columns dans la base information_schema.

Cordialement,
Papoupapa
Papoupapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 16h00   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Votre démarche est peut-être justifiable dans votre cas précis mais s'il s'agit de généraliser ce concept, ça me gène car une base de données est susceptible d'être utilisée par plusieurs logiciels. Vouloir stocker dans les commentaires de la table des contraintes applicatives revient à vouloir brider une voiture fabriquée en France à 130 km/h alors qu'elle peut être vendue et utilisée dans un autre pays avec une limitation de vitesse plus grande ou pas de limitations du tout !

La BDD ne doit à mon sens contenir que les informations et contraintes sur les données, indépendamment des applications qui vont l'utiliser.

Imaginons qu'une entreprise ait une base de données avec une table de personnes pour y enregistrer les informations sur ses salariés, dont la date de naissance. Comme on ne peut pas travailler avant 16 ans en France, on pourrait être tenté de mettre une contrainte sur la date de naissance afin d'interdire la saisie, par erreur, d'une date de naissance inférieure à aujourd'hui - 16 ans.
Puis plus tard, cette table est aussi utilisée pour enregistrer les enfants du personnel et la contrainte préalablement mise n'est plus valable.

C'est peut-être un exemple un peu bête mais pour moi, les contraitnes applicatives doivent figurer dans les applications et les contraintes inamovibles sur les données doivent figurer dans la BDD.

Pour reprendre votre exemple, vous pouvez décider aujourd'hui que toute colonne de type TEXT sera alimentée à partir d'une TEXTAREA de 5 lignes de 80 caractères. Demain vous aurez un écran de saisie avec relativement peu d'informations mais une TEXTAREA destinée à recevoir un texte en moyenne de 1000 caractères. Vous aurez alors peut-être envie de voir tout le texte saisi sur votre écran, puisque vous avez la place. Mais si le formulaire est créé dynamiquement à partir des données lues en BDD, ce ne sera pas possible.

Bref, je ne suis vraiment pas convaincu par la démarche, désolé !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 05h26   #5
Invité de passage
 
Homme Patrick Raugel
Chercheur en informatique
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Patrick Raugel
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Chercheur en informatique
Secteur : Santé

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 0
Points : 0
En effet je comprends l’intérêt de distinguer le stockage des données des instructions concernant leur manipulation; c'est un paramètre dont il a été tenu compte dans l'élaboration du cahier des charges.
Merci pour votre contribution.

Cordialement,
Papoupapa
Papoupapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h32.


 
 
 
 
Partenaires

Hébergement Web