{MySQL} aide pour base
Fermé
kaiser6684
Messages postés
7
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
4 août 2009
-
31 juil. 2009 à 11:16
imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 - 4 août 2009 à 10:17
imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 - 4 août 2009 à 10:17
A voir également:
- {MySQL} aide pour base
- Mysql community server - Télécharger - Bases de données
- Formules excel de base - Guide
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
4 réponses
imw
Messages postés
233
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
8 septembre 2011
42
1 août 2009 à 11:35
1 août 2009 à 11:35
Sympa comme sujet ...
je serai toi, je découperai différemment la base ...
Le soucis étant que tu ne sais pas comment elle va évoluer, autant la prévoir évolutive.
Toutes les petites tables (écran, imprimante, pc, autre ...) ne sont pas très justifiées.
créé une table "Type de matériel"
id (int auto)
nom (varchar)
dans laquele tu aura :
1 PC
2 ecran
3 imprimante
...
comme ça évolutive à l'infini
ta table matériel :
id (int auto)
id_magasins (int)
id_type (int)
nom ....
...
Pour le status du matériel, pas de soucis non plus :
tu rajoute un champ "etat" dans lequel tu met une valeur coorespondant :
1 - actif
2 - remplacé
3 - supprimer ...
Tu peux même envisager d'avoir une table pour lier les états ... c'est toi qui voit.
Avec tout ça, tu fait de requette un peu plus compliqué, mais tu peux rechercher exactement ce que tu veux.
Si tu veux, tu peux aussi créer une liaison sur la table matériel pour lier plusieurs matériels entre eux :
rajoute un champ Parent qui est liée à l'id d'une autre fiche de la même table.
Par contre, ça te fait une table récursive, il faut le gérer en PHP ... mysql ne sait pas le faire tout seul.
Tu pourrai aussi utiliser une table de croisement, pour lier plusieurs matériels à une même intervention (par exemple) ...
je serai toi, je découperai différemment la base ...
Le soucis étant que tu ne sais pas comment elle va évoluer, autant la prévoir évolutive.
Toutes les petites tables (écran, imprimante, pc, autre ...) ne sont pas très justifiées.
créé une table "Type de matériel"
id (int auto)
nom (varchar)
dans laquele tu aura :
1 PC
2 ecran
3 imprimante
...
comme ça évolutive à l'infini
ta table matériel :
id (int auto)
id_magasins (int)
id_type (int)
nom ....
...
Pour le status du matériel, pas de soucis non plus :
tu rajoute un champ "etat" dans lequel tu met une valeur coorespondant :
1 - actif
2 - remplacé
3 - supprimer ...
Tu peux même envisager d'avoir une table pour lier les états ... c'est toi qui voit.
Avec tout ça, tu fait de requette un peu plus compliqué, mais tu peux rechercher exactement ce que tu veux.
Si tu veux, tu peux aussi créer une liaison sur la table matériel pour lier plusieurs matériels entre eux :
rajoute un champ Parent qui est liée à l'id d'une autre fiche de la même table.
Par contre, ça te fait une table récursive, il faut le gérer en PHP ... mysql ne sait pas le faire tout seul.
Tu pourrai aussi utiliser une table de croisement, pour lier plusieurs matériels à une même intervention (par exemple) ...
kaiser6684
Messages postés
7
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
4 août 2009
3 août 2009 à 16:15
3 août 2009 à 16:15
Merci beaucoup IMW,
je vais voir ça, en attendant j'ai beaucoup de chose à faire donc je peux pas m'y mettre tout de suite.
Une fois que j'ai vu ça je posterai un message pour dire si cela fonctionne bien ou pas.
encore merci de ton aide.
je vais voir ça, en attendant j'ai beaucoup de chose à faire donc je peux pas m'y mettre tout de suite.
Une fois que j'ai vu ça je posterai un message pour dire si cela fonctionne bien ou pas.
encore merci de ton aide.
kaiser6684
Messages postés
7
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
4 août 2009
4 août 2009 à 09:59
4 août 2009 à 09:59
Bonjour IMW,
j'ai essayé de faire ce que tu m'as dit et ça donne ça :
create table type_materiels(
id_type_materiels int not nul auto_increment primary key,
nom varchar(15) not null
) engine = InnoDB;
create table materiels(
id_materiels int not null auto_increment primary key,
modele varchar(50) not null,
date_installation date null,
OS varchar(25) null,
etat varchar(10) not null,
quantite int not null,
id_magasins int,
id_type_materiels int,
index (id_magasins),
constraint fk_materiels_id_magasins foreign key(id_magasins) references magasins(id_magasins),
constraint fk_materiels_id_type_materiels foreign key(id_type_materiels) references type_magasins(id_type_magasins)
) engine = InnoDB;
pourrais-tu me dire si c'est bon?
merci d'avance pour ton aide.
Je remercie également ceux qui pourrons m'apporter d'autres idées :)
j'ai essayé de faire ce que tu m'as dit et ça donne ça :
create table type_materiels(
id_type_materiels int not nul auto_increment primary key,
nom varchar(15) not null
) engine = InnoDB;
create table materiels(
id_materiels int not null auto_increment primary key,
modele varchar(50) not null,
date_installation date null,
OS varchar(25) null,
etat varchar(10) not null,
quantite int not null,
id_magasins int,
id_type_materiels int,
index (id_magasins),
constraint fk_materiels_id_magasins foreign key(id_magasins) references magasins(id_magasins),
constraint fk_materiels_id_type_materiels foreign key(id_type_materiels) references type_magasins(id_type_magasins)
) engine = InnoDB;
pourrais-tu me dire si c'est bon?
merci d'avance pour ton aide.
Je remercie également ceux qui pourrons m'apporter d'autres idées :)
imw
Messages postés
233
Date d'inscription
vendredi 17 juillet 2009
Statut
Membre
Dernière intervention
8 septembre 2011
42
4 août 2009 à 10:17
4 août 2009 à 10:17
ca me parait pas mal ...