Creation d'une base de donnée

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 : Creation d'une base de donnée

par elminio » 17 juil. 2005, 20:05

l'exploitation de donnée
je vais ouvrir un post sur ce sujet car j'ai des questions à vous poser.

par pjl » 17 juil. 2005, 19:21

Ok mais moi je faisais déjà la liaison entre mon formulaire.php et ma base :lol:
c'est bon je laisse de côté mon formulaire ça sera l'étape 2 :wink:
Etape 3.
La 2, ce sera l'exploitation de tes données.

Maintenant que tes tables sont crées, tu les remplies à la main avec 2-3 jeux de données, tu fais tes pages d'affichage et tu vois si ca convient et ensuite, tu fais le formulaire de saisie.

par elminio » 17 juil. 2005, 18:41

Tout à fait normalement je peux me lancer à l'étape 2 formulaire.php
(insertion de donnée).
merci à tous :wink:

par ouckileou » 17 juil. 2005, 18:36

théoriquement, tu devrais savoir si oui ou non elle est conforme à l'utilisation que tu vas en faire
c'est tout le principe de l'analyse, se poser des questions (quelles données je manipule, comment je dois les organiser...) et réaliser la structure qui convient...

donc normalement la structure que tu as (sauf si tu as rajouté une petite improvisation dont tu as le secret ;)) devrait convenir

pour ajouter des données, c'est avec des commandes INSERT en SQL

là aussi, fais pas à pas, commence par exemple toute la partie qui consiste à enregistrer les infos d'un concours, uniquement celle contenue dans la table "concours" (nom, date...etc)
et si tu as des problèmes ouvre un nouveau sujet

par elminio » 17 juil. 2005, 18:29

ne met pas la charrue avant les boeufs
Je connais cette expression, mais je devrais l'apprendre :lol: .

donc pour revenir sur le sujet j'ai remplacé la commande SET par VARCHAR.
donc ma base est fini.

Que dois je faire ensuite pour voir si elle est conforme à ma futur utilisation ?
Puis je rentré des données et comment (la testé) ?

par ouckileou » 17 juil. 2005, 18:22

c'est bon je laisse de côté mon formulaire ça sera l'étape 2 :wink:
ce n'était pas le but de ce sujet justement ? :? reprendre tout à 0 et pas à pas

first step : la base de données

dans le Bouchonnois on dit : ne met pas la charrue avant les boeufs, et on se trompe rarement dans le Bouchonnois

par elminio » 17 juil. 2005, 18:19

Ok mais moi je faisais déjà la liaison entre mon formulaire.php et ma base :lol:
c'est bon je laisse de côté mon formulaire ça sera l'étape 2 :wink:

par ouckileou » 17 juil. 2005, 18:15

d'accord moi de mon côté j'avais compris que varchar ça permettait d'inseré
du texte seulement je ne savais pas que l'on pouvait l'utilisé avec des checkbox.
tu mélanges tout :)

varchar c'est effectivement pour stocker du texte

mais que viennent faire tes checkbox dedans ? pour l'instant tu t'occupes de la base de données, de la structure.
Avec des checkbox tu récupères une valeur et tu en fais ce que tu veux ça n'a rien à voir.

Tu ne comprends toujours pas que la table modes stockera uniquement les possibilités de modes, les différents modes disponibles (ici 3) et qu'elle ne sera modifiée que si tu rajoutes un nouveau mode un jour.

Et que c'est concours_mode qui fera la liaison entre un concours et un mode...

par elminio » 17 juil. 2005, 18:08

d'accord moi de mon côté j'avais compris que varchar ça permettait d'inseré
du texte seulement, je ne savais pas que l'on pouvait l'utilisé avec des checkbox.

par ouckileou » 17 juil. 2005, 18:03

disons que effectivement ce n'est pas totalement incorrect, mais à partir du moment où cette table va contenir uniquement les modes possibles, donc être modifiée rarement pourquoi mettre un enum ?

tu mets un VARCHAR pour ton lib_mod, et voilà
et si jamais un jour tu veux rajouter un nouveau mode tu rajouteras une ligne comme je te l'ai dit juste avant

si tu gardes ton enum, tu ne pourras jamais rajouter de mode sans changer la structure de la table

là ça ne sert à rien, tu te compliques la vie avec ce enum

par elminio » 17 juil. 2005, 18:00

phonie, télégraphie et mode_digitaux sont des valeurs et non des champs
Ok pour ça donc cette ligne est correct :
  • `mode` set('phonie','télégraphie','mode digitaux') NOT NULL default '',

par ouckileou » 17 juil. 2005, 17:56

non : phonie, télégraphie et mode_digitaux sont des valeurs et non des champs

tes champs de la table mode sont :
id_mode : un entier qui va identifier la ligne
lib_mode : le libellé du mode, qui va donc être phonie ou télégraphie ou mode_digitaux

et ensuite tu relieras un concours à un mode via la table concours_mode, en insérant un id_concours et un id_mode

par elminio » 17 juil. 2005, 17:53

quelle commande dois je utilisé alors au lieu de set ?

dois je crée les champs phonie, télégraphie et mode_digitaux au lieu de mode.

je ne comprend pas là :cry:

Ok pour tinyint

par ouckileou » 17 juil. 2005, 17:47

je ne comprends pas ce problème persistant que tu as pour remplir les relations... ce ne sont que des tables comme les autres, dedans tu mets un id_concours et un id_mode ou un id_bande...


et tu n'as pas compris le principe : tu mets un enum comme libellé de mode ou de bande... #-o

on va reprendre encore une fois : ta table modes recense les possibilités de modes disponibles
donc là tu en as 3 donc 3 lignes :

Code : Tout sélectionner

modes ------- 1 | phonie 2 | télégraphie 3 | mode digitaux
et si un jour tu veux rajouter un nouveau mode, tu rajouteras une ligne

Code : Tout sélectionner

4 | nouveau mode
avec ton système d'énum, tu serais obligé de modifier la structure de la base pour pouvoir rajouter une possibilité
tu dois pouvoir utiliser ta base en ne manipulant que les données, pas la structure

sinon pourquoi parles-tu de int(2) ? il n'y a pas de int(2) dans tes tables.
Pour stocker un numéro de mois, un tinyint suffira largement

par elminio » 17 juil. 2005, 17:43

concernant l'alimentation des tables de liaison concours_bande et concours_mode (jointure) :

Voici mes autres tables :

Code : Tout sélectionner

CREATE TABLE `concours_bande` ( `id_concours` smallint(5) unsigned NOT NULL default '0', `id_bande` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`id_concours`,`id_bande`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Code : Tout sélectionner

CREATE TABLE `concours_mode` ( `id_concours` smallint(5) unsigned NOT NULL default '0', `id_mode` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`id_concours`,`id_mode`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Code : Tout sélectionner

CREATE TABLE `bandes` ( `id_bande` smallint(5) unsigned NOT NULL auto_increment, `bande` set('160m','80m','40m','30m','20m','17m','15m','12m','10m','6m','2m','70cm') NOT NULL default '', PRIMARY KEY (`id_bande`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Code : Tout sélectionner

CREATE TABLE `modes` ( `id_mode` smallint(5) unsigned NOT NULL auto_increment, `mode` set('phonie','télégraphie','mode digitaux') NOT NULL default '', PRIMARY KEY (`id_mode`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INT(2) pour deux chiffres ex:99