|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Bonjour à toutes et à tous,
je suis débutant et je travaille sur une application en Java avec BD Postgres pour mon TFE. Pour résumer, j'ai une table Article(idArticle,nomArticle,prixArticle,qteStock,qteMini,idDispo) et une table Disponibilité(idDispo,nomDispo) qui regroupe 3 différents degrés de disponibilité d'un article. id| libDispo --| -------- 1 | Rupture 2 | Stock faible 3 | En stock Mon souci est que je voudrais qu'à chaque modification de la quantité en stock (qteStock) d'un article (issue d'une commande client par exemple,...) il y ait une mise à jour de la disponibilité. En fait, il faudrait que idDispo de Article change en fontion de qteEnStock. Donc, si qteEnStock = 0 alors idDispo = 1 (Rupture de stock) si qteEnStock < qteMini alors idDispo = 2 (Stock faible) si qteEnStock > qteMini alors idDispo = 3 (En stock) Dois-je utiliser un trigger? Merci d'avance pour votre aide qui me sera très précieuse.
|
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Quelqu'un peut-il m'aider SVP?
|
|
|
00
|
|
|
#3 | ||||
|
Membre expérimenté
![]() ![]() |
Voici les tables que je te propose pour ma réponse :
Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Salut Bricecol,
Merci pour ta réponse mais ce n'est pas exactement ce que j'ai demandé. Peut-être que mon explication n'était pas assez explicite. Aussi je n'ai pas compris pourquoi tu as mis idDispo = idArticle. En fait j'ai déjà mes tables comme je l'ai expliqué plus haut: Article(idArticle,nomArticle,prixArticle,qteStock,qteMini,idDispo) où idDispo est une clé étrangère. idArticle | nomArticle | prixArticle | qteStock | qteMini | idDispo ----------|-------------|-------------|------------|---------|--------- 1---------|CD1---------|5.99--------|15---------|5--------|3------- 2---------|DVD1-------|8.99---------|0----------|10-------|1------- 3---------|DVD2-------|10.99-------|8-----------|10-------|2------- Disponibilité(idDispo,nomDispo) id| nomDispo --| -------- 1 | Rupture 2 | Stock faible 3 | En stock Pour les disponibilités je me base sur ma règle ci-dessous: si qteEnStock = 0 alors idDispo = 1 (Rupture de stock) si qteEnStock < qteMini alors idDispo = 2 (Stock faible) si qteEnStock > qteMini alors idDispo = 3 (En stock) Au niveau programmation y a pas de souci puisque je mets à jour moi-même les disponibilités de chaque article au moment de son insertion ou modification. Mais j'aimerais en fait automatiser cela au niveau de la BD et donc que la clé étrangère idDispo se mette à jour toute seule à chaque fois que la quantité en stock (qteStock) d'un article change. J'espère que j'ai été plus clair cette fois-ci et merci. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Vraiment personne pour m'aider? C'est si difficile que ça?
|
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() ![]() |
C'est pas que c'est difficile. C'est seulement trop tordu comme idée.
A ta place, j'aurai fait une table article comme toi tu l'as faite (mais sans qtemini et iddispo). Ensuite dans mon code PHP par exemple, je récupère la quantité du produit et je met selon le cas 'en rupture' ou 'en stock' ou 'qte faible'..... Tu te compliques vraiment la tache pour rien. Ya des gens qui n'automatise rien, d'autre qui essaient de tt automatiser. La solution c'est un peu des deux je crois. Si tu veux vraiment automatisé, rajoute juste une table dispo comme tu las fait, et dans ta fonction, fait a peu pres comme je t'ai montré (tu pe personnaliser un peu comme tu m'as repondu). |
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Peut-être bien que c'est tordu mais là n'est pas la question, et en plus mon analyse a déjà été validée et donc je dois la respecter, je ne peux plus changer. Ce que je demande est faisable je pense, non?
J'ai déjà essayé mais en vain. Ca doit être un truc du genre: Code :
Aidez-moi svp |
||
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Ce post a été vu 55 fois et toujours nada. He ben ça fuse les réponses ici c'est sympa en tout cas.
Merci Bricecol de t'être au moins donné la peine de me répondre c'est cool. |
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() ![]() |
de rien et desolé pr toi.
si t pas pressé, je pourrai voir ca cett semaine qd j'aurai le temps. envoi moi ton adress mail en pm. |
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 129 ![]() |
Bon je lis le topic et desole je post pas pour y repondre mais l'exemple me fait penser a un autre cas.
Est-ce qu'un specialiste en BD peut il confirmer qu'il est utile dans un tel cas de creer une table pour stocker juste des chaines de caractere dans un champ et les associer a leurs id. Ici pour stocker la "disponibilite", mais dans d'autres cas une liste de prenom, de nom, etc Est-il recommandé de proceder de cette maniere ou remplir directement la chaine de caractere dans la table principale est suffisant (afin d'économiser sur les jointures) ? table principale id idnom idprenom table noms idnom chaine table prenoms idprenom chaine en lieu et place de table principale id nom(chaine) prenom(chaine) Pour ce qui est de ton probleme je comprends franchement pas pourquoi la disponibilite ne depend pas directement d'une fontion php qui la calcule a partir du stock disponible... Cordialement |
|
|
00
|
|
|
#11 | ||||
|
Membre chevronné
![]() Inscription : octobre 2003 Messages : 668 ![]() |
Salut, une piste ...
Code :
Code :
++
__________________
Two beer or not two beer. (Shakesbeer) Question technique par MP => poubelle! |
||||
|
|
00
|
|
|
#12 | ||
|
Membre chevronné
![]() Inscription : octobre 2003 Messages : 668 ![]() |
Citation:
Ensuite, un SGBDR (R pour relationnel est fait pour faire des relation, des jointures. Et enfin, si on ne fait pas cette jointure, on n'est pas en 3FN au niveau de la modélisation. (Qu'on me corrige surtout si je dis des conneries ) Citation:
Il est BEAUCOUP plus sur et plus rapide de l'implémenter dans la base de données via un trigger que d'espérer que PHP le fasse ( avec + de requetes, de transferts réseau, de risque de plantage dans le serveur php, de conflits de concurence, etc ...).
__________________
Two beer or not two beer. (Shakesbeer) Question technique par MP => poubelle! |
||
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 53 ![]() |
Enfin des réponses !!! Merci à Spoutnik pour tes éclaircissements et ton code que je vais d'ailleurs essayer dès que j'ai un peu de temps. Je te tiendrai au courant du résultat. Merci.
|
|
|
00
|
|
|
#14 | ||||
|
Membre chevronné
![]() Inscription : octobre 2003 Messages : 668 ![]() |
ca pourrait pt mieux marcher :
Code :
Code :
__________________
Two beer or not two beer. (Shakesbeer) Question technique par MP => poubelle! |
||||
|
|
00
|
|
|
#15 | ||
|
Membre du Club
![]() Inscription : mars 2005 Messages : 129 ![]() |
Citation:
J'aimerais bcp qu'un specialiste SGBD reponde a cette question sur le judicieux de creer une table des prenoms et d'inserer dans une table des personnes l'id du prenom en lieu et place du prenom, idem pour le nom... Citation:
Au pire si on a besoin d'avoir ce renseignement directement depuis la base on cree une vue qui fait le calcul en direct sans stocker physiquement le resultat inutilement vu que l'information de base est deja presente (et plus complete) et que pour le coup on est plus en forme normale vu que la colonne dispo depend directement des deux autres (qte et qte_mini) |
||
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
Citation:
Citation:
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
||
|
|
00
|
|
|
#17 | ||
|
Membre chevronné
![]() Inscription : octobre 2003 Messages : 668 ![]() |
Citation:
Citation:
__________________
Two beer or not two beer. (Shakesbeer) Question technique par MP => poubelle! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com