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

Petit nouveau ! | 9 Messages

07 avr. 2008, 19:35

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

ViPHP
ViPHP | 5924 Messages

07 avr. 2008, 22:04

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.

Mammouth du PHP | 19672 Messages

07 avr. 2008, 22:06

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 9 Messages

08 avr. 2008, 19:08

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

ViPHP
ViPHP | 5924 Messages

08 avr. 2008, 19:53

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…

Petit nouveau ! | 9 Messages

10 avr. 2008, 10:33

... 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

ViPHP
pjl
ViPHP | 2119 Messages

10 avr. 2008, 15:10

Renseigne toi un peu sur les clefs étrangères dans une base de données.