Phpmyadmin sous-types

Résolu/Fermé
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 20 janv. 2011 à 12:06
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 20 janv. 2011 à 15:36
Bonjour à tous,

Je relance un sujet, faute de pouvoir le supprimer pour en refaire un autre. Et je n'arrive pas non plus à modifier l'ancien sujet, car des (syntax error) apparaissent lorsque je valide les modifications...bref je sais que cela va être un sujet doublon, alors si c'était possible de supprimer l'ancien sujet (auteur necro27 / 19/01).

Bon sinon :

Je réalise un site intranet pour une entreprise qui aura pour but de gérer un stock de matériel informatique.

Pour ce faire j'utilise wampserver, et travail donc avec phpmyadmin en ce qui concerne les base de données.

Je dispose d'une table "typematériel", qui est relié à une table "matériel", qui est relié à 2 tables. Ces 2 tables sont "clavier" et "souris". Bien évidemment il y aura beaucoup plus de tables reliés à matériel (environ une 15ène)

Donc en plus clair (au maximum) :

typemateriel(IdTypeMateriel, DesigMateriel)
-->IdTypeMateriel clé primaire.

materiel(IdMateriel, DescriptionMateriel, QteStockMateriel, #IdTypeMateriel)
-->#IdTypeMateriel clé étrangère en relation avec IdTypeMateriel de la table materiel.

Ensuite les tables qui héritent des informations de la table materiel n'ayant aucune information propre à leur table, si ce n'est des clés étrangères provenant d'autres tables concernant un matériel. (pas très clair mais j'essai)

Nous avons donc :

typemateriel 0,n (association) 1,1 materiel

materiel
--> sous type clavier
--> sous type souris

ensuite du sous type clavier
clavier 1,1 (association) 0,n langue (français, russe...)
clavier 1,1 (association) 0,n apparence (standard, ergonomique...)
clavier 1,1 (association) 0,n connectique (din, ps2, usb...)
clavier 1,1 (association) 0,n liaison (filaire, sans-fil)

Vous pouvez donc voir que le sous-type "clavier" contient l'équivalent des clés secondaires propres aux tables langue, apparence, connectique, liaison. Mais aucune autre information.

Dans le même genre pour la souris, mais avec d'autre tables (oui base de données très conséquente à mon goût).

PhpMyAdmin, que faire ?

J'ai donc créé une table typemateriel, contenant un id et un type matériel.

Ensuite une table materiel, contenant un id, une description, une quantité en stock, et l'id de la table typemateriel.

et là le problème arrive...comment faire pour entrer simuler le lien entre la table matériel et la table clavier par exemple ?

Dois-je créer une table clavier, en ré-écrivant les mêmes champs que ceux de la table matériel ? (soit IdMateriel, DescriptionMateriel, QteStockMateriel, IdTypeMateriel)
puis rajouter les idlangue, idapparence.....

Quelqu'un pour essayer de m'éclairer un petit peu ? j'ai les neurones complètement HS.

Et par la même occasion, n'hésitez pas à me dire, ou apporter une modification au niveau de la base de données, car elle me parait plus que compliqué, et au bout de 2 jours à essayer de la tourner dans tous les sens, je doute que ma solution soit bonne...

Si vous avez des question n'hésitez pas, merci d'avance beaucoup pour ceux qui donneront un intérêt à ce sujet.

Bonne journée, Necro27.

4 réponses

jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 38
20 janv. 2011 à 12:18
Bonjour,

Ai-je bien compris si je pense que la table typemateriel servira à indiquer à quel table se connecter pour chercher un produit ?
0
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
Modifié par necro27 le 20/01/2011 à 13:34
Bonjour jambondardennes,

Alors j'ai peur de ne pas saisir la question, humm..

le souci est que je ne suis pas très sûr de ma structure de bdd actuelle, alors je pense que je fais des erreurs.

la table "typemateriel" contient donc les nom des différents matériels. (clavier, souris..)

En effet celle-ci permettra d'établir une liste présenté sous forme de liste à puce sur le site intranet, qui recensera tous les noms possible. Ensuite pour chaque materiel, par exemple pour clavier, j'aurai 4 zones de bouton radio, présenté (à beaucoup de choses prêt) comme cela
:

admettons donc que je clic sur clavier :

une page va s'afficher avec le contenu
--> liaison : O filaire O sans-fil
--> langue : O français O russe
--> apparence : O standard O ergonomique
--> connectique : O din O ps2 O usb

(où 'O' est un bouton radio.)

l'utilisateur sélectionne un bouton radio de chaque zone, donc doit avoir 4 boutons radio cochés.

Ensuite grâce à cela, après validation, un message apparait comme tel :
clavier filaire, français, standard, ps2 : quantité en stock : 5 (nombre fictif)

Je doit donc pouvoir afficher une quantité en stock pour chaque phrase possible avec les boutons radio ... je me perd un peu... besoin de + d'infos ? pas de soucis si besoin je développe

merci d'y mettre un interêt.

Necro27
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 38
20 janv. 2011 à 13:55
Voilà un comparateur de prix que j'ai créé moi même http://www.comparer-plus.com
et comme comparatif pour prendre exemple :
http://www.comparer-plus.com/comparatifs/comparatif-alimentations.php

En lieu et place des cases à cocher ce sont des listes avec tous les critères disponibles.
En sélectionnant un à un chaque critère le comparatif se met à jour.

Est-ce dans ce genre de solution que tu t'orienterais ?

P.S. : désolé pour la pub mais c'est pour prendre exemple et voir comment organiser ton projet.
0
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
20 janv. 2011 à 14:09
Alors oui cela peut être rapprochant, mais mon maître de stage m'a plus demandé d'éviter l'idée des listes déroulantes pour cela j'ai opté pour les boutons radios.

mais bon cela reste un détail. En gros oui voilà ce que je veux, je stock également (ce que je pense tu fais) des informations via la méthode $_GET, et en fonction afficher les résultats.

Cependant j'ai 2 niveaux de choix, d'abord je choisi le matériel, ensuite les informations du matériel pour ensuite pouvoir afficher un prix... je n'arrive pas à être clair cela m'agace, tellement de choses à expliquer ><

bon bref pour répondre à ta question oui c'est sur ce genre de solution que je voudrai aboutir, et même en y réfléchissant à 2 fois, cela semble être similaire. mais au niveau bdd, comment tu gères cela ? (hors phpmyadmin pour commencer, histoire de voir si ma base de données actuelle est cohérente....)
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 38
20 janv. 2011 à 14:23
pour résumer tout est réparti sur 20 bases de données, chaque base de donnée étant dévolu aux comparatifs
par exemple bdd1 : alimentation , boitier , etc...

pour la table alimentation tous les critères y sont disponibles :

reference - marque - modele - puissance - etc...

Ensuite chaque visiteur choisis dans la liste puissance par exemple celle désirée et par récupération en url (GET) le filtrage s'effectue.

La même méthode est possible en remplacant la liste par des cases à cocher et de créer un petit foreach en php et de le faire sur des cases à cocher et non des listes.

Pour en revenir à ton projet ma table alimentation est comme suit :
- id
- reference
- refcommercant
- refmarque
- marque
- modele
- certification
- pfcactif
- epsdouzev
- modulaire
- processeur
- pcie
- sata
- molex
- puissance
- format
- ventilateur
- garantie

Ensuite ce n'est que du travail en php pour l'affichage et l'interrogation de la base de données.
Actuellement je tente à la sauce web 2.0 avec case à cocher justement et sur fichier xml. Le résultat est bluffant et évite les rechargements de pages mais là j'ai choisi la technologie spry d'abobe.

Pour savoir à quelle table et/ou bdd en fonction du produit il faut se connecter j'avais longuement réfléchis et en fait toute l'information se trouve dans reference qui commence par 4 lettres (ALIM, SOUR,...) je récupère ces 4 lettres et je peux alors me connecter à la bonne bdd et à la bonne table.
0
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
Modifié par necro27 le 20/01/2011 à 14:33
tout d'abord, je risque d'être long à répondre mais c'est indépendant de ma volonté, les connexion internet de l'entreprise sont très mauvaise aujourd'hui... 15 minutes pour un rafraichissement simple de page, donc désolé d'avance, mais je suis à fond sur le sujet..

Bon ensuite, si je comprend bien dans le même état d'esprit, je devrais faire une bdd clavier, une bdd souris...etc ??

ensuite lorsque tu dis table d'alimentation, tu sous-entend que tu n'as que une seul table par bdd ? Ou j'ai mal compris ? ou tu as dans ta table alimentation des info concernant celle-ci, mais par exemple pour la marque tu as bien une table "marque" à coté (composé donc d'un id et d'une désignation)? ou tu n'as vraiment qu'une seule table alimentation qui contient en dur :
- id
- reference
- refcommercant
- refmarque
- marque ...etc


EDIT : apparament ma connexion à l'air de s'améliorer...pfiou
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 38
20 janv. 2011 à 14:51
c'est pas ta connexion c'est CCM qui a du mal à pédaler.

Alors chacune des 20 BDD peut contenir autant de categorie de produit que je le souhaite certaines en ont plusieurs d'autres qu'une categorie.
Si le projet est en intranet et qu'aucune limite n'est à craindre en nombre de BDD je te conseille une bdd=une catégorie de produits.

Alors non je n'ai pas de tables marque ou autre tout est contenu dans la table de la catégorie elle-même
ainsi la table alimentation contient toutes les informations que tu souhaiterais pour chaque alimentation (marque, codebarre, reference, ....)

La BDD est là pour stocker l'information ensuite au langage de programmation PHP ou ASP, suivant les cas, de filter les résultats en fonction des besoins.

Le plus important dans ton projet est de simplifier l'accès aux données ensuite c'est que de la programmation.
0
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
20 janv. 2011 à 15:36
Agaçant tous ça >< (accès à ccm)

le souci avec l'importance du projet est que certes il doit être fonctionnel et donc avoir un accès simple aux données, mais le problème est que mon projet est un projet de stage dans le cadre d'un bts et si je présente un mcd avec 15 bases de données, et 1 table par bdd, je pense que cela ne va pas passer du tout pour l'examen.. mais je conçois très bien ce que tu me conseilles, ainsi il faudrait que j'en parle avec mes professeurs pour savoir si je peux faire comme cela.

Je penses malheureusement que je doit avoir un lien entre la table souris et clavier, qui serait donc la table matériel. Mais bon c'est facile à dire mais jamais simple à réaliser...

je vais mettre ce sujet en résolu, car à mon goût c'est une solution qui fonctionne, mais je ne peux me permettre de l'appliquer sans avoir un minimum de sureté en ce qui concerne l'examen. Et honnêtement, j'ai pas trop envi de tout faire selon cette manière pour ensuite m'apercevoir que c'est pénalisant pour l'examen, donc devoir tout refaire ensuite... lol

En te remerciant très sincèrement de t'être penché sur le problème et m'avoir éclairé sur une façon de faire, je te souhaite de passer une bonne journée, et à une prochaine peut être.

a+

Necro27
0