|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2011 Messages : 91 ![]() |
Bonsoir.
Je sais que le titre n'est pas clair mais je ne savais pas vraiment comment résumer mon problème. Je vais essayer d'expliquer le plus clairement possible. J'ai fait un script de "missions" formées d'étapes. J'ai donc une table "missions" et une table "etapes" ayant un champ "id_mission". Un exemple sera plus parlant pour commencer. - J'ai 1 mission composée de 3 étapes. - Pour l'étape n°1 je dois aller au point A. - Pour l'étape n°2 je dois aller au point B et en plus avoir l'objet X. - Pour l'étape n°2 je dois aller au point B, avoir l'objet X et avoir 200€. Si je n'avais comme condition que "aller à un point" j'aurais juste mis un champ "position" mais avec cet exemple on voit que j'ai besoin de faire un SELECT sur les tables "users" (position, argent) et "inventaire" (objet). A l'heure actuelle je fais un beau truc de brute en insérant directement les requêtes dans un champs "conditions" de ma table "etapes" et en plus d'être moche c'est pas pratique mais je ne trouve pas de solution. Quelqu'un aurait-il déjà eu un problème similaire ou aurait un début de piste ? Merci. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
dans ta table étape tu rajoute un champs pour objet et un champs pour utilisateurs qui sont des clé étrangères (id user et id objet) qui peuvent être null, t'as plus qu'à faire une jointure...après sans le mcd je ne suis pas sur de répondre à ta question...
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : avril 2011 Messages : 91 ![]() |
Merci de ta réponse.
Dans mon cas cela ne va pas être possible. J'ai 3 types d'objets donc il me faudrait un id_objet et un id_type. A la rigueur ça pourrait marcher mais si j'ai besoin de 2 objets ou plus ? Il faudrait que je sépare les valeurs par des virgules et que j'associe tous les id_objet avec les bons id_type. Même si j'aime pas trop cette solution je pourrais m'en contenter. Comment faire pour demander la position X et en même temps la somme d'argent Y ? L'autre inconvénient est que si je rajoute une condition je dois modifier les champs :/ |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
j'ai du mal à cerner ton problème sans détails...
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2011 Messages : 91 ![]() |
J'avoue que je ne vois pas trop comment l'expliquer.
Tu ne comprends pas quoi ? Ce qu'il faut savoir c'est que je dois pouvoir tester n'importe quel champ de n'importe quelle table. Je dois pouvoir tester le champ "position", le champ "argent" de la table "users" mais peut-être que demain j'aurai besoin de tester le champ "groupe". |
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
t'as pas un mcd ?
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : avril 2011 Messages : 91 ![]() |
Je n'en n'ai pas sous la main et à dire vrai il n'y en a pas besoin.
Il faut que je puisse tester n'importe quel champ de n'importe quelle table. |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : février 2008 Messages : 430 ![]() |
Tu peux créer les tables :
- condition - type_condition - etape_condition Condition contiendrait les champs : - id_condition : clé primaire - valeur : (Coordonée de point, prix, ce que tu veux) - id_type : (clé étrangère de type_condition) type_condition contiendrait les champs : - id_type : clé_primaire - valeur : type de condition (Argent, Etape,...) Etape_condition contiendrait les champs : - id_etape : clé étrangère d'une étape - id_condition : clé étrangère d'une condition Cela te permettrait d'avoir autant de condition que tu veux par étape de n'importe quel type.
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre. Linus Torvalds |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : avril 2011 Messages : 91 ![]() |
En voilà une solution qu'elle est bonne et dont j'étais à des milles de trouver.
Il va juste falloir que je la mette en pratique pour bien m'en imprégner Merci beaucoup Marc3001
|
|
|
00
|
|
|
#10 |
![]() ![]() |
C'est sans doute là que ce situe le premier problème !
C'est une grosse erreur d'implanter une BDD un tant soit peu complexe sans avoir modélisé les données en se basant sur des règles de gestion claires. ![]() Pour apprendre à modéliser les données, regarde le cours de SQLPro. Si tu as besoin d'aide pour la modélisation, adresse-toi au forum Schéma.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : avril 2011 Messages : 91 ![]() |
Désolé la fin de ma phrase est incomplète
![]() "Il n'y en a pas besoin pour cet exemple" Mais je te remercie pour les liens Je voulais que cela fonctionne sans connaître les données à l'avance. Pour le moment je suis en train d'adapter la solution de Marc3001. Si tout fonctionne bien je passe en RESOLU
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com