Page 1 sur 1

Creation d'une table à partir d'une autre table

Posté : 07 avr. 2008, 19:35
par MScam
Bonjour,

je suis débutant en php et mysql, et j'ai un problème : on m'a conseillé de créer beaucoup de tables dans ma base, afin que chaque table contient un seul type d'information.

Voici une version simplifiée de ce que je voudrais faire.

j'ai créé une table mois qui contient 12 champs, les douze mois de l'année.
j'ai crée une table jours qui contient les 7 champs, les sept jours de l'année.
j'aimerai créer une autre table rendez_vous qui contient 3 champs : jour, mois, année.

où jour prend ces valeurs dans la table jours
où mois prend ces valeurs dans la table mois.

Merci

Posté : 07 avr. 2008, 22:04
par Sékiltoyai
C'est une très mauvaise façon de faire. Les jours et les mois, il faut les hardcoder dans ton application, pas les mettre dans une base. Est ce que ce sont des informations qui sont amenées à changer ?
Dans ton cas, il ne te faut qu'une seule table, rendez_vous, avec un champ de type DATE, MySQL gérera lui-même les informations.

Posté : 07 avr. 2008, 22:06
par Cyrano
Celui qui t'a conseillé ça n'a pas dû t'expliquer grand chose : toutes ces tables ne servent à rien et vont te pourrir l'existence plus qu'autre chose.

Une seule table "rendezvous" avec une colonne date_rdv de type DATETIME et les autres informations sur le rendez-vous sera beaucoup plus rationnelle.

Explique-nous ce que tu veux faire et on pourra te mettre sur des pistes plus pratiques :-k

Posté : 08 avr. 2008, 19:08
par MScam
enfait, il s'agissait d'un exemple, et vous n'avez pas compris ... je vais donc reprendre.

j'ai une table A qui contient ces informations :

Code : Tout sélectionner

key (tinyint) valeur (varchar) 1 Abc 2 Bcd 3 Cde
j'ai une table B qui contient ces information

Code : Tout sélectionner

key (tinyint) Noms (varchar) A (Enum) 1 Nom 1 'Abc','Bcd','Cde' 2 Nom 2 'Abc','Bcd','Cde' 3 Nom 3 'Abc','Bcd','Cde'
comment créer la table B, qui utilise une colonne de type Enum dont les valeurs sont dans la table A

Posté : 08 avr. 2008, 19:53
par Sékiltoyai
Arrête avec des exemples, poste nous le shéma réel de tes tables. Tu ne nous aides pas à t'aider. Donc tu ne t'aides pas…

Posté : 10 avr. 2008, 10:33
par MScam
... okay... voici les tables exportés (sans les valeurs)

Code : Tout sélectionner

-- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- Structure de la table `competence` CREATE TABLE `competence` ( `id` tinyint(4) NOT NULL auto_increment, `competence` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Structure de la table `personnage` -- CREATE TABLE `personnage` ( `id` tinyint(4) NOT NULL auto_increment, `nom` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL default '', `competence` enum('comp1') character set utf8 collate utf8_unicode_ci NOT NULL default 'comp1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

et je voudrais que la colonne competence de la table personnage soit un enum dont les valeurs soient prises parmi la colonne competence de la table competence


en tout cas, merci de prendre le temps de me répondre

Posté : 10 avr. 2008, 15:10
par pjl
Renseigne toi un peu sur les clefs étrangères dans une base de données.