IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Comment rechercher sur plusieurs champs et/ou transformer ca en requete ?


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Musicien
    Inscrit en
    Juillet 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Juillet 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Comment rechercher sur plusieurs champs et/ou transformer ca en requete ?
    Bonjour
    En tant que debutant (qui ne connait donc pas les termes techniques) je voudrais effectuer une recherche sur 6 champs : acteur1, acteur 2 etc ...

    Il s'agit d'une bdd de films avec deux tables :

    Une table films où chaque film renseigne entre autre ses 6 acteurs principaux
    Une table staff où chaque entrée correspond à un acteur.

    Or, dans le formulaire de la table staff, pour chaque entrée (acteur), je voudrais un champs avec tous les films de la base où il joue, sachant qu'il peut être acteur principal (acteur1) ou secondaire (acteur2) etc ... qu'il peut donc être présent dans les 6 champs. A noter que je ne tiens pas forcement à distinguer parmi les 6 champs dans le resultat final/ Ce qui m'importe est de savoir les films où il joue, pas le degré du rôle. Et cela seulement parmi les films présents dans la base. Il ne s'agit pas de sa filmographie générale mais de savoir où je peux le retrouver dans les films de la base.
    Dans l'Ideal, j'aimerais même avoir une colonne de la table staff pour afficher le resultat.

    J'imagine donc le processus ainsi, mais si vous avez une autre idee, vous êtes les bienvenues

    - Faire une recherche sur 6 champs (déjà j'aimerais savoir faire cela)
    - afficher le résultat dans ... une requete ? (idem, même si mon processus n'est pas le bon)
    - Faire un formulaire de la requete et l'inserer en sous formulaire dans le formulaire staff ... en espérant qu'il ne m'affiche que les résultats non NULL car aucun acteur existe dans les 6 champs.
    - ou/et copier le résultat dans un nouveau champs de la table staff

    En supposant que mon idée du processus est à peu près correcte, j'ignore comment faire chacune de ces étapes sauf peut être la troisième.
    Je répète que je suis preneur des autres manières possibles de faire, bien sur, tant que ca reste dans le domaine du compréhensible par le débutant que je suis.

    Merci de votre aide.

    PS Pour le moment je n'ai fait aucun lien entre les 2 tables, mais je connais le concept. Vous pouvez me l'indiquer si il y en a à faire, par exemple entre la colonne staff.nom et les 6 colonnes acteur de la table films (j'imagine).

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    la requete peut s'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from films where nom1='hanks' or nom2='hanks' or...
    Toutefois il serait préférable d'avoir une 3e table casting qui indique pour chaque film quels en sont les acteurs avec 3 champs: id_film, id_staff, role

    La requete serait alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from (films f inner join casting c on c.id_film=f.id_film) inner join staff f on f.id_staff=c.id_staff  where nom='hanks'
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Musicien
    Inscrit en
    Juillet 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Juillet 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par nico84 Voir le message
    Toutefois il serait préférable d'avoir une 3e table casting qui indique pour chaque film quels en sont les acteurs avec 3 champs: id_film, id_staff, role
    Bonjour et merci de ta reponse.
    Dans la nouvelle table, il y aurait donc un enregistrement par Film-acteur, et donc, vu que j'ai mis 6 acteurs par film, 6 enregistrements par film ?
    exemple
    1 Rambo Sylvester Stallone
    2 Rambo acteur 2
    ....
    6 Rambo acteur 6
    7 Film 2 acteur 1
    etc ...

    C'est bien ainsi que vous le voyez ?

    Pas eu le temps de me pencher sur les requetes.

    Je ne parle pas des autres membres du staff pour faire simple. Si je comprends avec les 6 acteurs je comprendrais pour les autres.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Musicien
    Inscrit en
    Juillet 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Juillet 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Alors, pour la requete, j'ai rapidement trouvé le mode sql ....

    J'ai essaye avec deux champs pour commencer ...
    Ca donnerait donc

    select * from films where films_acteur1='hanks' or films_acteur2='hanks'

    (hanks, je ne peux m'empecher de demander, brievement ca veut dire quoi ?)

    Aucun message d'erreur mais la table ne contient aucun enregistrement et sa structure est la même que celle de films
    Que dois je faire maintenant sachant que le but est de trouver tous les films d'un acteur ?

    Mais le coups de la 3eme table me semble intéressant.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Musicien
    Inscrit en
    Juillet 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Juillet 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Ca y est, j'ai compris le coups du "hanks" qui est tout simplement l'espace pour le nom de l'acteur.

    Bon. Mais du coups ca donne

    select * from films where films_acteur1='Sigourney Weaver' or films_acteur2='Sigourney Weaver' or films_acteur3='Sigourney Weaver'
    or films_acteur4='Sigourney Weaver' or films_acteur5='Sigourney Weaver' or films_acteur6='Sigourney Weaver'

    Le probleme c'est que je suis obligé de réécrire 6 fois le nom de l'acteur que je cherche. N'y a t'il pas moyen de simplifier l'expression pour que je doive l'écrire une seule fois ? Genre au lieu de dire 1(nom) + 2(nom) + 3(nom) etc ... dire (nom):1+2+3 etc ...

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 797
    Points : 14 863
    Points
    14 863
    Par défaut
    bonjour,
    Le probleme c'est que je suis obligé de réécrire 6 fois le nom de l'acteur que je cherche. N'y a t'il pas moyen de simplifier l'expression pour que je doive l'écrire une seule fois ?
    une solution serait de passer par un paramètre déclaré, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PARAMETERS [QuelActeur] Text;
    select * from films where films_acteur1=[QuelActeur] or films_acteur2=[QuelActeur] or films_acteur3=[QuelActeur]
    or films_acteur4=[QuelActeur] or films_acteur5=[QuelActeur] or films_acteur6=[QuelActeur];
    le nom sera à saisir une seule fois dans la boîte de dialogue qui apparaitra:
    Nom : _0.JPG
Affichages : 90
Taille : 8,6 Ko
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 818
    Points
    4 818
    Par défaut
    Bonjour,
    Pour répondre proprement à ta problématique, il te faut 3 tables :
    T_film (film_id autoincrémenté (PK), Film_titre, ...)
    T_acteur (acteur_id autoincrémenté (PK), acteur_nom, ...)
    et la table des relations :
    T_film_acteur ( Film_id, acteur_id)
    Ainsi , tu peux saisir n acteurs jouant dans 1 film
    et consulter très facilement tout ce que tu veux.
    Je te conseille vivement de jeter un œil à https://mhubiche.developpez.com/Access/tutoJointures/
    "Always look at the bright side of life." Monty Python.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Musicien
    Inscrit en
    Juillet 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Juillet 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Super super tout ça

    Alors, d'abord merci à tous les deux
    Du coups je suis en train de reflechir aux 2 options. L'existence de la 3eme table pour faire le lien me semble certes assez logique, mais, concretement, je ne vois pas encore comment elle va servir. D'ailleurs, la suite du probléme fonctionne dans les 2 cas. Avec la requete ou avec la 3eme table

    Tee grandbois, c'est GENIAL Ca marche super
    N'y aurait il pas , cependant, un moyen de faire revenir la petite boite autrement que en fermant et reouvrant la requete ?
    mais c'est certes 10000 foi mieux que de se taper 6 fois le nom dans la fenetre sql.

    Bon, mais le but n'est pas encore atteint. En effet, savoir comment trouver les films d'un acteur est la 1ere etape. Maintenant il faut inserer cette liste de films à chaque acteur. J'y ai reflechi toute la soiree et j'ai dû refaire ce message quatre fois.
    Je vois deux options. Il doit sans doute deja exister des sujets sur le fofo. Vous qui le connaissez, vous pourriez peut etre m'orienter sur les 2 Et bien sur me donner vos avis et experience.

    EXPORTATION EN TEXTE

    On pourrait par exemple exporter, pour chaque acteur , le resultat de la requete, en texte dans un nouveau champs (liste de films) de la table staff
    Definir donc d'ecrire les films les uns apres les autres si possible avec quelques options de base de presentation (a la ligne entre chaque film ou sur la meme ligne)
    MAIS on pourrait aussi y ajouter, à chaque films, quelques info de la table des films (réalisateur et année par ex).
    Ainsi dans le champs "films de la base" de chaque acteur il y aurait genre :
    Le Hobbit de Peter Jackson 2010
    Alien de Alan Parker 2017
    autant de lignes que de films

    CLICS POUR PASSER D'UN FORMULAIRE A L'AUTRE

    Le probleme c'est que c'est en texte donc sans possibilité d'interaction.
    D'où l'autre chemin, celui de garder la liste des enregistrements plutot qu'un texte. AVant d'avancer sur ce chemin j'ai besoin de comprendre comment afficher le formulaire de l'un quant on est dans l'autre ... comment voir les infos d'un acteur quant on clique sur son nom alors que nous sommes dans le formulaire des films .... et vice versa : afficher les infos du film quand on visualise la liste des films d'un acteur .....
    Là aussi vous pouvez sans doute m'indiquer une direction (sujet qui existe, tuto , quelques iinfo de base ....)

  9. #9
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Citation Envoyé par Cyril03 Voir le message
    Dans la nouvelle table, il y aurait donc un enregistrement par Film-acteur, et donc, vu que j'ai mis 6 acteurs par film, 6 enregistrements par film ?
    C'est une base de données donc il y aurait exactement autant de lignes que d'acteurs saisis voire si besoin le metteur en scène ou oautre grâce au champ role... Limiter à 6 va probablement être rapidement un problème et saisir le nom complet de chaque acteur dans chaque film va comporter des risques de doublons, erreurs...

    Pour la restitution de l'information le plus simple est de passer par des sous-fenêtres, il y a plein de tutos là-dessus. Dans cet exemple on choisit un fournisseur dans une liste et cela indique dans 3 sous-fenetres ses commandes, ses livraisons et ses factures :
    Nom : sousfenetre.png
Affichages : 79
Taille : 19,8 Ko
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Musicien
    Inscrit en
    Juillet 2024
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Musicien

    Informations forums :
    Inscription : Juillet 2024
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Tee_grandbois
    Le code genial que tu m'as donné (le QuelActeur) il va donc chercher ses inFos dans plusieurs champs de la table, et le resultat est TOUS les champs de la table
    N'y aurait il pas moyen de seulement afficher certains champs choisis ? J'imagine que il faut une fonction dans le code qui selectionne les champs , qu'il va falloir lister ?
    C'est TRES complique ou tu peux m'en donner un exemple ?

    Ensuite, est ce possible d'exporter toutes les données de cette requete magique en texte dans une nouvelle colonne "Films_Ou_Il_Joue" de la table staff ?
    Afficher les films où les gars jouent en transformant les entrées obtenues en liste
    D'ou l'importance de limiter les champs et ne mettre que le nom, l'année et le réalisateur

    Donc par exemple l'acteur Bob Smith qui joue dans 3 films le resultat serait :
    Le toutou du frangin Nicole Roudman 1999
    Qu'est-ce qu'elle a ma gueule Bouboul Pabodutou 2012
    Tancrede président Nicole Roudman 2014

    Car, souvent, l'acteur a pluisieurs entrees obtenues, qui correspondent donc à plusieurs films. Il doit donc y avoir moyen de passer à la ligne entre chaque et de tout mettre dans un nouveau champs ...

    La aussi, c'est quoi la direction où je dois chercher ? Ca demande d'exporter en texte pour chaque entrée , de le faire dans le champs d'une table, et de definir de passer à la ligne entre chaque enregistrement. Et si ca se trouve il doit meme y avoir moyen de definir une presentation plus compliquée, genre avec du texte entre les champs, comme : NomDuFilm + "réalisé par" + NomDuRealisateur + "en" + AnneeDuFilm


    Ensuite, pour l'histoire de la 3eme table, je n'arrive pas à la créer
    En effet il s'agit de créer une table où chaque acteur a une entrée par film où il joue si j'ai bien compris.
    Ainsi, vu qu'il y a 950 films, il va y avoir 950 entrée rien que pour le champs Acteur1 + 950pour le champs Acteur2, donc 950 x le nombre de champs qu'il y a pour le staff.
    Sauf qu'il y a des NULL , cad des champs acteurs qui ne sont pas toujours renseignés, dans certains champs et qu'il serait bien, j'imagine, de pas les afficher dans la table .Et en plus il serait bon que, quand je les mettrai, ca remplira egalement l'autre.

    Suis je déja sur la bonne voie de reflexion en ce qui concerne cette 3eme table ou j'ai vraiment rien compris ?

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 797
    Points : 14 863
    Points
    14 863
    Par défaut
    bonjour,
    N'y aurait il pas moyen de seulement afficher certains champs choisis ?
    j'aurai tendance à répondre: dans la requête il faut remplacer le caractère * par les champs désirés, séparés par des virgules, mais devant la profusion de questions j'ai plutôt envie de dire: STOP! si le modèle de données est à refaire, il faudrait commencer par cela: créer les nouvelles tables après avoir corrigé les éventuelles anomalies (fautes de frappe, doublons, ...)
    Quand tu auras recréé les 2 tables existantes avec les bonnes colonnes et un identifiant unique (champ type numéro auto) et après les avoir alimentées, tu pourras créer et alimenter la troisième.

    Si tu suis le modèle de données indiqué par micniv la requête que je t'ai donné ne sera plus fonctionnelle en l'état car la table films ne devra plus avoir les 6 colonnes acteurs, mais 6 lignes (au maximum) donnant la relation film-acteur(s) dans ta nouvelle table. Il sera ensuite possible de créer tous les acteurs du film, n'étant plus limité par des colonnes.
    Il restera probablement d'autres informations à renseigner notamment définir le type de rôle (en créant une table des rôles: acteur(trice) principal(e), second rôle, figurant, etc.). Ce type de rôle pourrait certainement trouver sa place dans la table films_acteurs (mais c'est juste une suggestion ...)

    Enfin, pour la 3ème table, il sera possible de l'alimenter par requêtes (une par colonne acteur) en partant de l'ancienne table films puisque l'identifiant unique est film + acteur1 , film + acteur2, film + acteur3 etc. sera mis à jour avec des nouveaux champs numériques contenant les identifiants des nouvelles tables.

    De nouvelles questions viendront certainement après ce travail mais je pense qu'elles devraient concerner le modèle de données.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2017
    Messages : 99
    Points : 24
    Points
    24
    Par défaut
    Un grand merci pour ta réponse Ã* laquelle j'ai beaucoup réfléchi
    Tu as pris le temps de me lire jusque la Peut-être prendras tu le temps de lire ma réponse.
    Je ne vois pas du tout pourquoi la base serait a refaire. Certes je suis autodidacte débutant mais j'ai su quand même faire une base avec des numéros id et sans doublons possibles.
    Prends le temps, stp, de lire le fonctionnement que j'ai réussi, en tâtonnant, a réaliser, car ca fonctionne jusqu'ici très bien, même si j'ai des questions pour continuer certains points comme la fameuse colonne des films dans lesquels chaque acteur joue et pour laquelle je t'ai demande, première étape, la fameuse recherche.

    Ainsi je n'ai que 2 tables, oh grand sacrilege !
    La table Staff, avec peu de champs (une dizaine) et deja 1200 membres. Et surtout la table films avec tous les 950 films deja rentres, sommairement pour beaucoup.
    Cette table est enorme et c'est ca qui semble le premiere anomalie.
    Outre une vingtaine de champs "generaux" sur le film (date, synopsis, emplacement, taille et format du fichier etc ...) il y a surtout les fameuses colonnes pour chaque membre du film : 5 pour les membres derrière la caméra (réalisateur, scénaristes et Compisiteur) et désormais 21 colonnes pour 21 acteurs !!
    J'ai en effet écouté un conseil récemment donné sur le trop petit membre de 6 acteurs. Qui peut le plus peut le moins. Beaucoup de films n'ont pas autant d'acteurs mais beaucoup en ont plus. J'ai donc opté pour 21. Le 22ème et plus voudront bien me pardonner pour leur absence.
    Enfin, en plus de ces 26 champs pour le staff il y en a 26 pour le rôle du membre dans le film. J'ai eu cette idée avant que tu me la proposes.
    Donc ça fait une table énorme et pas dans les règles Ã* plus de 70 champs, mais, toujours en bon autodidacte, je vais dire que ce ne me dérange pas car ça fonctionne. Mais la suite importe.

    Pour chacun des 26 membres j'ai fait une requête très simple, avec surtout les quelques champs de la table staff, et un petit formulaire de cette requête que j'ai glissé en sous formulaire du formulaire principal. Celui qui me sert a remplir les données Ã* la fois pour les films et pour ajouter les nouveaux membres.

    Donc dans ce formulaire principal (films_saisie), outre en haut les info générales du film, il y a 26 petits sous formulaires staff et, juste au dessus de chacun d'eux, le champs de la table ou il est et son rôle dans le film.

    Ainsi quand je veux remplir les info d'un film, je mets d'abord le nom des membres au dessus de chaque sous formulaire, avec, juste a cote son role dans le film, 2 champs de la table films. Je tourne la page et je reviens pour que ca actualise et apparait, si le membre est deja dans la table staff, le sous formulaire et je peux donc remplir les autres sous formulaires , c'est a* dire creer les nouvelles entrees de la table staff. Tout cela avec un formulaire.
    Car, bien sur, chaque requete a un lien entre films_acteur1 (ou 2 ou 3 ou scénariste1 etc ...) et staff_nom. Et dans le formulaire principal, a chaque sous formulaire il a fallu redefinir champs pere et champs fils.

    C'est tres commode pour remplir simultanement les 2 tables : le film et ses membres dans la table staff. Ca l'est aussi pour visualiser les infos de chaque film.

    En ce qui me concerne quels pourraient etre les defauts ?
    Je voudrais pouvoir acceder du sous formulaire au "vrai" formulaire du staff. Cliquer sur l'acteur pour acceder a ses infos par un autre formulaire serait top. Cela je ne sais pas faire et je n'arrive pas a lire le tuto. Je suis tres vite perdu et demotive
    Mais, plus important, je veux ce champs supplementaire "filmsOuIlJoue" dans la table staff, qui serait le resultat de la requete que tu m'as donne, d'pu ma recherche sur l'exportation en texte dans un champs.

    Si 3eme table il doit y avoir je ne comprends pas encore son utilite. Et pour la faire, hors de question de tout recommencer. Au pire je peux unir toutes les requeªtes.

    Quand j'aurai fini de remplir les membres et info des 950 films, d'ici quelques mois, il faudra alors que je me penche sur l'exportation en html. Chaque jour suffit sa peine.

    Maintenant que tu sais clairement comment ma base fonctionne , alors, oui, tu peux me dire ce qu'il ne va pas aux yeux d'un pro comme toi. Si tu veux bien.

    Edit 1000 fois désolé pour les accents. Je ne sais pas comment corriger cette erreur qui n'existe qu'a partir de mon téléphone.

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 797
    Points : 14 863
    Points
    14 863
    Par défaut
    bonjour,
    je ne vais pas répondre à tout, je préfère aller à l'essentiel:
    Si 3eme table il doit y avoir je ne comprends pas encore son utilite. Et pour la faire, hors de question de tout recommencer.
    le contenu de la 3ème table (appelons-la films_membres) correspond ni plus ni moins aux 52 colonnes (26*2 ) de la table films mais avec une structure de seulement 4 colonnes, il y aurait autant de lignes que le film aura de membres sans restriction (ou juste une seule si le réalisateur fait tout lui même )

    structure de la table (mais cela reste une proposition):
    1ère colonne : identifiant unique de la table
    2ème colonne: identifiant du film (existe dans films)
    3ème colonne: identifiant du membre (existe dans Staff)
    4ème colonne: identifiant rôle du membre (existant dans une table des rôles contenant un numéro auto et un libellé du rôle)
    NOTES:
    - éventuellement une 5ème colonne de type rang pour trier les rôles ou bien la mettre dans la table rôle ?
    - voir comment gérer le cas du réalisateur qui est aussi acteur, par exemple: dans ce cas ont peut avoir plus d'une fois l'identifiant du membre avec un rôle différent

    Une requête avec jointure entre la table films_membres et films avec l'identifiant films et une jointure films_membres et staff avec l'identifiant du membre te donnera tous les films et leurs staffs d'un seul coup et si tu ajoutes la table des rôles pour avoir le libellé du rôle de chacun, après c'est la relation père/fils qui fonctionne comme avant.
    Mais pour cela, il te faudra convertir les 52 colonnes de la table films en lignes dans la table films_membres.
    Résultat : plus besoin de 26 sous-formulaires, il n'y en aura qu'un seul contenant tout le staff du film choisi.

    Et comme je te l'expliquais, il suffit de créer les bonnes requêtes pour remplir la table films_membres, si tu dois refaire les tables existantes, il n'y aura rien à saisir puisque les données existent.
    Je concède qu'il y aura les formulaires et les sous-formulaires à refaire mais ce sera beaucoup plus facile
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Comment rechercher sur 2 champs ?
    Par Loulo8407 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/08/2009, 13h25
  2. Recherche sur plusieurs champs.
    Par icicmoi dans le forum JDBC
    Réponses: 6
    Dernier message: 09/08/2008, 00h54
  3. Réponses: 8
    Dernier message: 13/04/2008, 14h44
  4. [Débutant]Recherche sur plusieurs champs
    Par Touareg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/03/2007, 14h04
  5. Réponses: 2
    Dernier message: 30/11/2004, 09h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo