|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 2 ![]() |
Bonjour,
Je suis élève-ingénieure, actuellement en mission de terrain en entreprise. Je dois faire le travail suivant: mettre en place un système de gestion de stocks, appro, commandes, factures pour une petite PME. Je me suis donc tournée vers Access, j'ai commencé à faire des tables, j'aimerais avoir quelques renseignements sur l'arborescence (si ceci est possible à faire sur Access). En fait je suis dans une société qui fabrique des petites éoliennes, et selon les éoliennes, certains composants sont communs à deux types d'éolienne, et de plus il y a une arborescence entre les composants, par exemple: On a une nomenclature d'un composant d'une éolienne et ce composant assemblé qui est donc composé d'autres composants qui peuvent être oui ou non des composants assemblés. Je voulais donc savoir d'une part si il était possible de faire sur Access une telle manipulation, et d'autre part, comment faut-il s'y prendre au niveau des stocks pour gérer ceci. Je comprends que ceci n'est pas forcément très clair donc si vous voulez plus de précision, n'hésitez pas à me le demander. merci d'avance pour ceux qui pourront m'aider |
|
|
10
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Ok, autant te prévenir tout de suite, la gestion de composer dans une base de données relationnelle est une plaie. Elles ne sont simplement pas faite pour cela.
Mais on peut y arrivre quand même. Le truc est d'avoir la structure suivante : Article ClefArticleComposant ClefComposantArticleComposant cette table te permet de dire de quoi ton article est composé. ClefArticleSi tu n'as pas de Article composé d'article cela demeure simple, sinon il faut gérer tous les Composants comme des articles et faire des articles avec des article et avoir certain article qui ne se décompose pas. C'est un peu comme un arbre génalogique ou chaque personne peut être un pêre ou un mêre tout en étant une personne. Cela donne : Article ClefArticle ArticleArticle ArticleComposé ArticleComposant Avec une double relation sur Article pour ArticleArticle. Si tu peux trouver dans le commerce un logiciel qui fait cela je t'invite fortement à considérer l'option. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Citation:
Il me semble que les problèmes de nomenclatures dans les SGBDR sont assez classiques, non ? Je mets un lien du forum SQL sur les nomenclatures pour donner une idée: http://www.developpez.net/forums/d91...s/#post5205169 Pour le traitement récursif sous Access, il faudra passer par du code VBA. Problème classique mais pas simple lorsqu'on débute
|
|
|
10
|
|
|
#4 | |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Citation:
Tu ne peux pas écrire facilement : select * from article et obtenir une liste des articles et de leur composantes ou gérer le décompte automatique de pièces quand tu utilises des sous-ensembles composés. Ça marche beaucoup mieux avec des bases de données Objets mais c'est encore peu répandu. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 2 ![]() |
Merci pour vos réponses très rapides. Vu le peu de temps que j'ai pour faire ceci, et étant une personne des moins futés pour manipuler un tel logiciel, je pense que je vais jeter un coup d'oeil du côté des GPAO.
Encore merci |
|
|
00
|
|
|
#6 | |||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
Bonsoir,
Citation:
Sinon, la norme SQL fournit la syntaxe générale des requêtes récursives. En première approche, voyez l’article de SQLpro à ce sujet. Les requêtes développées par l’auteur et qui servent à illustrer l’utilisation des recherches récursives ne correspondent aucunement à des extensions propriétaires. L’auteur utilise SQL Server 2003 pour illustrer son propos, mais les requêtes qu’il propose sont portables dans DB2, Oracle, Sybase iAnywhere PostgreSQL ou tout autre SGBD utilisant les « WITH queries » de la norme, en particulier les CTE (common tables expressions) hébergeant l’opérateur UNION ALL pour effectuer les traitements récursifs (ou itératifs, comme vous voulez). Si les WITH queries sont des extensions propriétaires, alors on est dans le domaine de la copropriété... Citation:
Table des Pièces : (J’ai utilisé le type Texte pour la clé primaire car c’est plus parlant, mais en principe on utilise le type Entier). Table des composants et des composés : Sous forme de graphe : Le modèle logique correspondant est celui-ci : PIECE a pour clé primaire {PieceId} COMPOSITION a pour clé primaire {ComposantId, ComposeId}. ComposantId fait référence à PieceId (clé étrangère), même chose concernant ComposeId. Si par exemple on veut savoir combien il faut de rivets pour une aile : Code SQL :
Réponse : 183. Je ne vois pas quelle difficulté il y a pour décompter les pièces. Citation:
Ça marche déjà pas mal avec les SGBDR mentionnés plus haut, même s'ils ne méritent sans doute pas le label "SGBD déductifs" car trop généralistes. Mais je ne demande qu’à être convaincu qu'avec les SGBDOO ça marche beaucoup mieux. Merci de nous en faire la démonstration.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|||||
|
|
51
|
|
|
#7 | ||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Bonjour à tous,
mais même sans WITH Queries, je ne vais pas céder aussi facilement moi Code :
Code :
|
||||
|
20
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
Bonjour Fabien Talon,
Juste une petite remarque : le code SQL « WITH » est portable en l’état, par exemple depuis SQL Server vers mon SGBD favori, DB2 for z/OS, mais sur mon mainframe, je ne saurai pas exécuter votre jolie procédure sans la réécrire dans un langage connu du système d’exploitation (z/OS) maqué avec DB2...
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
00
|
|
|
#9 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Merci fsmrel, pour le cours
Même si Code :
En passant comme mon latin est un peu vieux vue que ça doit faire plus de 25 ans que je n'en ai pas fait je vais prendre ignoratio elenchi comme un compliment. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
00
|
|
|
#10 | |||
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 5 ![]() |
Bonjour,
Heu comment fait-on fonctionner cette instruction WITH ? MS SQL2000 ou Access ne reconnait pas cette instruction. Citation:
Une idée ? Code :
Geo |
|||
|
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
|
|
00
|
|
|
#12 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
Bonsoir,
Citation:
![]() Etc. Notez que Codd cite ce qu’il écrivit en 1979 dans Extending the Database Relational Model to Capture More Meaning : je vous invite à le lire. Pas d’allergie en vue, SQL en est absent, langage qui donnait aussi des boutons à Codd. Cela dit, de 1979 à 2011, ça fait quand même un bail que le Modèle relationnel traite de la récursivité dans le contexte des bases de données... Pour plus d’information sur la fermeture transitive (transitive closure), je vous invite à vous reporter à la discussion ici (mais à part la brève mention qui est faite de l'opérateur relationnel TCLOSE, il y a du SQL, désolé).
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
|
00
|
|
|
#13 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Merci fsmrel pour cette précision.
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com