phpmyadmin quand tu nous tient !!

  • Créateur du sujet Créateur du sujet Any
  • Date de début Date de début

Any

Membre actif
23 Février 2009
170
10
36
toulouse
Salut tout le monde,

J'ai créer mes tables sous phpmyadmin, mais comment fait on pour créer des relations entre les tables ?

voici le mcd associé :



Merci d'avance pour votre aide ^^
Julien.
 
je garde ce topic pour mes questions ^^

quelles relations dois je faire pour être en rapport avec mon mcd ? j'ai fait quelque test infructueux et je ne trouve rien !

houla je ne suis pas assez précis donc enfaîte je veux mettre les relations "illustre" et "décrit" sur ma bdd et je ne vois pas du tout comment je peux faire ...
 
Pour rappel, le mcd décrit la phase conceptuelle donc la notion de relation n'existe pas encore... On a des Entités et des Associations, des cardinalités et c'est bien assez.

Pour passer à la suite, il faut transformer ton mcd : supprimer les associations en tenant compte des cardinalités, voire même créer une relation entre Document et Terme...
 
merci mais c'est un peu vague dans phpmyadmin je peut créer une relation entre document et terme mais pas entre image et document !!
 
Ouaip tu as fait le mcd (modèle conceptuel de données), il faut maintenant passer au mpd (modèle physique de données), ton schéma ne permet pas de déduire directement les tables à créer, tu grilles une étape, même si avec un peu de bon sens je t'accorde qu'on peut s'en passer.

En gros tu devrais avoir 4 tables :
Document, Image, Terme et TermeDocument
Dans termedocument tu as deux clés étrangères respectivement vers terme et document.
Dans Image tu as une clé étrangère vers document.
 
Ouaip tu as fait le mcd (modèle conceptuel de données), il faut maintenant passer au mpd (modèle physique de données), ton schéma ne permet pas de déduire directement les tables à créer, tu grilles une étape, même si avec un peu de bon sens je t'accorde qu'on peut s'en passer.

En gros tu devrais avoir 4 tables :
Document, Image, Terme et TermeDocument
Dans termedocument tu as deux clés étrangères respectivement vers terme et document.
Dans Image tu as une clé étrangère vers document.

alor deja je ne sais pas ce que c'est le mpd !! avec les 4 mois de grèves nous avons certainement zapper cela ^^(je suis en iut informatique première année xD)

ensuite j'ai crée la table termeDocument et je n'arrive pas a faire la relation entre image et document il me dit :

Erreur lors de la création de la clé étrangère (vérifiez les types de données : numeroI

que faire ?

ps: le mpd sa serait pas un genre de mld ?
 
MLD ? J'avais entendu d'autres variantes, mais pas ce terme là, d'après wikipedia ça a pas l'air de vouloir dire pile poil la même chose :
http://fr.wikipedia.org/wiki/Merise_(informatique)

Si il te manque des cours, fais des recherches sur le net autour de la méthode Merise, ça doit pas manquer, surtout sur les sites français, ça vient de chez nous. ;) Mais si tu sais pas faire ce passage ça va forcément te manquer.
Une clé étrangère c'est une (ou des) colonne d'une table qui contient la même valeur que la (ou les) colonne qui sert de clé primaire à une autre table. Il faut donc d'abord définir une clé primaire sur la table référencée par la clé étrangère, avec des champs qui soient indexables par mysql (donc varchar ou int essentiellement), et qui soient uniques pour tout enregistrement. Si aucune de tes colonnes ne satisfait ça crée une colonne en int et en auto-increment.
Il faut d'abord créer tes colonnes, et ensuite définir ta clé étrangère.
 
Milles merci grumff de ton attention !

alors si je récapitule bien j'ai toutes mes table et toutes mes relations sauf celle de image vers document pour ^^

par contre dis moi si je me trompe :

-- Structure de la table `decrire`
--

CREATE TABLE `decrire` (
`numeroD` varchar(150) NOT NULL,
`titre` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`numeroT` varchar(150) NOT NULL,
`motCle` varchar(255) NOT NULL,
PRIMARY KEY (`numeroD`,`numeroT`),
KEY `numeroT` (`numeroT`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='table decrire';

--
-- Contenu de la table `decrire`
--


-- --------------------------------------------------------

--
-- Structure de la table `document`
--

CREATE TABLE `document` (
`numeroD` varchar(150) NOT NULL default 'numerod',
`titre` varchar(255) NOT NULL default 'titre',
`url` varchar(255) NOT NULL default 'url',
PRIMARY KEY (`numeroD`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='table document';

--
-- Contenu de la table `document`
--


-- --------------------------------------------------------

--
-- Structure de la table `image`
--

CREATE TABLE `image` (
`numeroI` bigint(20) NOT NULL,
`file` varchar(255) NOT NULL,
PRIMARY KEY (`numeroI`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='table image';

--
-- Contenu de la table `image`
--


-- --------------------------------------------------------

--
-- Structure de la table `terme`
--

CREATE TABLE `terme` (
`numeroT` varchar(150) NOT NULL default 'numerot',
`motCle` varchar(255) NOT NULL default 'motcle',
PRIMARY KEY (`numeroT`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='table terme';

--
-- Contenu de la table `terme`
--


--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `decrire`
--
ALTER TABLE `decrire`
ADD CONSTRAINT `decrire_ibfk_1` FOREIGN KEY (`numeroD`) REFERENCES `document` (`numeroD`),
ADD CONSTRAINT `decrire_ibfk_2` FOREIGN KEY (`numeroT`) REFERENCES `document` (`numeroD`);

ps: la table décrire ces celle que tu m'a donner comme documentTerme.
 
En quoi elle te pose problème cette relation ? Elle a rien de différent des autres. T'as juste à ajouter une colonne numéroD dans ta table image et à mettre la foreign key dessus.

Ah tiens en fait, ça c'est pas bon :
Bloc de code:
ADD CONSTRAINT `decrire_ibfk_1` FOREIGN KEY (`numeroD`) REFERENCES `document` (`numeroD`),
ADD CONSTRAINT `decrire_ibfk_2` FOREIGN KEY (`numeroT`) REFERENCES `document` (`numeroD`);
ça devrait être ça plutôt :
Bloc de code:
ADD CONSTRAINT `decrire_ibfk_1` FOREIGN KEY (`numeroD`) REFERENCES `document` (`numeroD`),
ADD CONSTRAINT `decrire_ibfk_2` FOREIGN KEY (`numeroT`) REFERENCES `terme` (`numeroT`);