Pb BDD : modéliser machine+caractéristiques

bib -  
TechAndCo Messages postés 254 Statut Membre -
Bonjour,

Je travaille en ce moment sur une Base de données recensant les caractéristiques techniques des machines de l'entreprise et de celles de ses concurrents. Le but est de pouvoir faire des comparatifs.

J'en suis pour l'instant à la conception (modèle entité-association) et j'ai du mal à modéliser les caractéristiques des machines donc les attributs : doivent-ils tous apparaitre dans une table machine ou dois-je créer plusieurs tables pour chaque fonction des machines.

Table Machines
id_machine
caractéristique1
caractéristique2
caractéristique3
etc. (environ 75 caractéristiques)


OU BIEN

Table Machines
id_machine

Table Ensemble_caractéristiques1
caractéristique1
caractéristique2
Etc.

Table Ensemble_caractéristiques2
caractéristique1
caractéristique2
Etc.


J'ai du mal à imaginer les différences entre les deux solutions lors de l'utilisation de la base.

Merci à vous pour votre aide.

Bib

5 réponses

bib
 
Up

Je vous sollicite de nouveau pour des conseils ou des liens me permettant d'avancer dans la conception de ma base.

Merci à vous encore une fois
0
TechAndCo Messages postés 254 Statut Membre 20
 
Bonjour,

Je te rappelle le but d'une base et surtout du MEA: éviter les redondances. Donc:

Si des caractéristiques sont communes à plusieurs machines, alors cela signifie qu'elles peuvent appartenir à une classe/type, sinon, il s'agit d'une entitée.

Autre question ?
0
bib > TechAndCo Messages postés 254 Statut Membre
 
Bonjour TechAndCo,

Je te remercie pour ta réponse.

Quelle différence fais tu entre classe et entité, il me semblait que c'était la même chose ?

En effet, presque toutes les caractéristiques sont communes à toutes les machines, ce sont simplement les données qui changent. Cela signifie que je dois créer une table pour chaque type de caractéristiques ?

Encore merci à toi pour ton aide.

bib
0
TechAndCo Messages postés 254 Statut Membre 20 > bib
 
Bonjour,

Je t'explique rapidement:

Une machine est caractérisée par un numéro de série et un identifiant

Cette machine peut être une imprimante, un multifonction, un pc,....

Cette machine aura un constructeur: HP, DELL, TOSH,....

Ce constructeur pourra avoir plusieurs modèle dispo: LJ5100, 990CXI....


Tu me suis ? en gros, une entité Machine et d'autres entités Constructeur, Modele avec une relation
Modele (1,1) -> Type (1,n)

Machine (1,1) -> modele (1,n)

Modele (1,1) -> Constructeur (1,n)

En espérant t'avoir aidé.

A bientot.
0
bib > TechAndCo Messages postés 254 Statut Membre
 
Re-bonjour TechAndCo,

Encore merci de prendre le temps de m'expliquer !

A mon tour de m'expliquer :
En fait, il s'agit plutôt de machine genre voitures. J'ai fait comme ça :

Une table fabricant (qui correpondrait sur ton exemple à constructeur).

Une table machine avec un identifiant, un nom, une catégorie (si on reste dans les voitures, ce serait break, citadine, etc.)

Une table caractéristiques avec un identifiant et... environ 75 caractéristiques dans la table
. Si je fais des groupes de caractéristiques, ca donnerait environ une dizaine de groupes : dimensions (largeur,hauteur,...), moteur (cylindree,puissance,...), Etc.

Ce que je me demande vu que l'objectif est de pouvoir comparer les caractéristiques des différentes machines, c'est : est-ce que je met les 75 caractéristiques dans la table caractéristiques ou est ce que je divise la table caractéristiques en plusieurs tables (table dimension, table moteur, etc. )

J'espère que cette fois c'est plus clair... Si tu as compris mes doutes , qu'en penses-tu ?

bib
0
TechAndCo Messages postés 254 Statut Membre 20 > bib
 
Alors,

pour ta machine, le break, citadine, seront des types de voiture:

Entités:
Machine
Type
Moteur
etc...

Donc en gros, pour éviter la redondance, il faut tout subdiviser et resubdiviser. Ensuite, tu vas composer ton véhicule avec les différents éléments (type, moteur, dimensions, intérieur,....)

En lisant ce que tu as écris, les dimensions seront différentes pour chaque voiture, le moteur aussi,....

Tu vois ou je veux en venir ?

Si tu as ton MEA motnres le :) on te dira ce qu'il en est.

A bientot.
0
bib
 
Je suis désolée mais si j'agrandis ça ne tient pas sur une page et ça ne ressemble plus à rien...

Le but :
- faire des comparaisons entre les machines
- savoir qui fabrique quoi et qui vend quoi

Merci pour la rapidité de tes réponses en tout cas !!!
0
TechAndCo Messages postés 254 Statut Membre 20
 
Alors, ta machine va posséder des caractéristiques, donc:

Choix 1:
Dans ta table caractéristiques, tout lister et dans ce cas, tu auras toutes tes carac mais bcp de cases seront vides :)

Avantages:
Une seule table
Gain de temps

Inconvénients:
Gros bordel :)
Champs inutilisés
En cas de recherche sur une caractéristique ou plusieurs ou une insertion, tu auras une requete immense donc aucune posibilité futur (si tu veux rebosser sur une caractéristique par exemple).

Choix 2:
Tout détailler:
Carac 1 (1 table): IdCarac1 ; NomCarac1

Avantage:
Propre
réutilisable
En cas de reprise, ce sera plus clair (même pour toi)

Inconvénient:
Fastidieux (toutes les tables à créer)


Conseil:
Solution 2 si tu veux que ce soit propres et professionnel (DB DESIGNER peut t'aider ou un autre concepteur de MEA)

Solution 1 si tu es une flemasse et que ton projet n'a pas de but ultraprofessionnel.

En sachant que l'une prend plus de temps, mais te facilitera la tâche pour t'y retrouver par la suite (solution 2). Je prendrai la 2 !!!!!


A bientot.
0
bib
 
Ok, merci beaucoup pour tes conseils TechAndCo !

Je pense que je vais chosir la solution 2, j'ai besoin que ça soit nickel et surtout facilement réutilisable par d'autres après moi donc effectivement, ce sera plus clair en séparant.

J'ai l'impression d'abuser mais puisque tu as mon MEA entre les mains, j'aimerais te demander encore deux conseils (je complique encore la chose !) :

- Pour certaines caractéristiques de mes machines, j'aurais des données "commerciales" (celles qu'on voit dans les brochures) et des données "réelles" (celles de la R&D) !
Est-ce que je peux dupliquer mes champs dans une table en mettant un préfixe devant : "com" pour les données commerciales et "reel" pour les données réelles. Par exemple : com_vitesse et reel_vitesse ?
Ces données seront-elles facilement comparables avec un préfixe ou faut-il créer une table com_moteur (avec tous mes champs en données commerciales) et une table reel_moteur (avec tous mes champs en données réelles).

Pour ma table entreprise, je voulais faire apparaitre le fait qu'une entreprise est en relation avec une ou des autres entreprises. Les relations peuvent être de type : concurrent, distributeur, filiale, fournisseur, etc.
Est-ce que la relation que j'ai créé permet de savoir clairement qui est le distributeur de qui ?

Si tu n'as as envie de répondre c'est pas grave, d'autant que le sujet ne concernait pas ces problèmes là !

En tout cas encore merci d'avoir résolu mon premier problème !

bib
0
TechAndCo Messages postés 254 Statut Membre 20
 
Alors:
Question 1:
si tes données doivent etre consultées par deux services différents, sépare tout :) (sécurité), sinon c'est good dans la même table (com et reel).
Ca risque de faire bcp si tu sépares mais question sécu c'est mieux et toujours dans le soucis de 'propreté' ;)

Question 2:
Pour ma table entreprise, je voulais faire apparaitre le fait qu'une entreprise est en relation avec une ou des autres entreprises. Les relations peuvent être de type : concurrent, distributeur, filiale, fournisseur, etc.
Est-ce que la relation que j'ai créé permet de savoir clairement qui est le distributeur de qui ?

Oui, tu auras juste une table supplémentaire 'Etre en relation' avec comme clef primaire Id_entr1 Id_entr2 mais attention, si une entreprise est filiale et fournisseur, il faut que tu rajoutes un autre champs comme Type de relation (relation 3-aire).


Pas de soucis on est là pour répondre aux questions mais pas pour les résoudre !! donc c'est bon tu peux en poser autant que tu veux.

A bientot et bon courage.

N'hésites pas à me recontacter si donner des cours gratuits t'interresse sur une compétence particulière.

0
bib
 
Génial, merci merci merci !

Ca me soulage de pouvoir faire "valider" ce que je fais car là où je travaille, personne ne s'y connait en base de données donc je travaille seule... :(

Je m'y remets en sachant qu'il va y avoir du boulot !

Bonne fin de journée à toi.
0
TechAndCo Messages postés 254 Statut Membre 20
 
N'hésitez pas à me contacter si tu as d'autres question et surtout comme je te le disais, si tu es interressée pour transmettre des connaissances à d'autres personnes, j'ai de mon côté un projet en cours de démarrage concernant des cours totalements gratuits :)

http://ecah.communic8.fr

A bientot et bon courage dans ton projet !

PS: j'utilise DB designer pour le MEA (permet la synchro directe avec la bdd) et navicat pour la gestion. Si ca peut t'aider !
0
bib > TechAndCo Messages postés 254 Statut Membre
 
Bon ben si t'insistes j'ai encore une question ! :o)

Eventuellement, si j'y arrive et si j'ai le temps, ma base de données devra être trilingue (français, anglais, allemand).

Est-ce que la meilleure solution dans mon cas est de créer trois bases de données identiques en trois langues différentes?

Sinon, je travaille déjà (pour la première fois) sur DB Designer et c'est vrai que c'est bien. Le souci c'est que je ne sais pas encore si je ferais ma base sur MySQL ou sur ACCESS. J'attends la décision des chefs...
Navicat a l'air bien aussi mais sur télécharger.com ils disent qu'il n'est disponible gratuitement que 30 jours. Je ne pense pas que j'aurais fini ma BDD dans 30 jours ! ^^

Pour les cours gratuits, je trouve ton concept très sympa, c'est une bonne idée. J'aimerais t'aider mais je ne vois pas très bien dans quel domaine je serais éventuellement capable de donner des cours. Quoi que.. quand je serais arriver au boût de cette base, je serais peut-être une pro !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TechAndCo Messages postés 254 Statut Membre 20
 
Bonsoir,

lol encoredes questions. Pour la trad, aucune idée.. je poserai la question à une traductrice :)

Jte tiens au courant.

A plus tard.
0