Bonjour,
J’ai une BDD contenant plusieurs tables dont : chercheur, publication, projet, équipe …
Un chercheur appartient à une seule équipe.
Un ou plusieurs chercheurs publient une ou plusieurs publications.
Un ou plusieurs chercheurs participent à un ou plusieurs projets de recherche.
Une équipe chapote un ou plusieurs projets.
Donc j’ai les 6 tables suivant :
Chercheur ( id, id_equipe, est_chef, attributs de chercheur )
Equipe ( id, attributs de equipe )
Publication ( id, attributs de publication )
Publication_chercheur ( id_publication, id_chercheur )
Projet ( id, id_equipe, id_chef_projet, id_equipe, attributs de projet )
Projet_chercheur ( id_projet, id_chercheur )
Je voudrai avec ça faire un truc qui permet à l’utilisateur de formuler une requête de recherche dynamiquement selon ce qu’il veut chercher.
Genre j’ai pour chaque entité, chercheur, équipe, publi, projet :
[ liste déroulante pour choisir l’attribut ] [ liste déroulante pour choisir = ou != ] [ input pour saisir une valeur ]
( je vais noté ce formulaire par {chercheur} par exemple ).
Don pour permettre de faire la recherche sur plusieurs vue de mes tables, je fais –en théorie- un formulaire du genre :
{chercheur} [et/ou] {équipe} [et/ou] [chercheur appartient ou pas à équipe] [et/ou] {publication} [et/ou] [chercheur a publié ou pas la(les) publication(s)] [et/ou] {projet} [et/ou] [équipe chapote ou pas le(s) projet(s)] [et/ou] [chercheur participe à projet].
Mais je ne vois vraiment pas comment je vais formuler (forgé) ma requête de recherche.
Avez-vous des idées ?
Merci beaucoup
PS:
----
Pour Equipe par exemple; Les valeurs qu'on choisi dans la liste déroulante ne sont pas les équipes listé, se sont plutôt les attributs de équipe (par rapport au quel on peut effectué une recherche).
D'ailleurs mon idée de liste déroulante pour choisir l'attribut auquel on veux chercher est un peut à l'arrache, car je ne pourrai pas exprimé le fait qu'on puisse faire une recherche par rapport à plusieurs attributs de l'objet.
Et le problème principale aussi c'est que normalement mes jointures seront exprimé selon ce qu'on a utilisé comme entité pour la recherche, càd:
Si {equipe} Et {chercheur} Alors Prendre en considération que chercheur "appatient ou pas" à equipe. ==> equipe.id = chercheur.id_equipe (ou bien equipe.id <> chercheur.id_equipe)
Si {chercheur} Et {projet} Alors prendre en considération que chercheur(s) participe à projet(s).
Si {equipe} Et {projet} Alors prendre en considération que equipe chapote projet(s).
Si {chercheur} Et {publication} Alors prendre en considération que chercheur(s) est un auteur (ou pas) de publication(s).
Message édité par robocop333 le 30-04-2008 à 15:01:38