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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2014
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Fichier de données "générique"

    Bonjour à tous,

    Dans l'entreprise pour laquelle je travaille, nous avons un service de CallCenter (CC) pour d'autres entreprises. Du fait d'une réorganisation totale de ce service, il m'a été demandé d'en refaire l'application avec un collègue.
    Il m'a été confié la création de la DB et le développement de l'application côté opérateur. l'application côté responsable se connectera sur la même DB mais sera implémenté par mon collègue.
    L'objectif est qu'une fois que nous aurons fini notre travail, le responsable du service CC pourra gérer totalement l'ensemble des projets en cours et paramétrer les prochains.

    En théorie, c'est très bien mais j'ai un problème au niveau de l'analyse de ma DB. Je tiens à préciser que je suis développeur et, à part mes cours qui sont très loin, pas du tout expert en gestion de DB.

    J'ai donc un problème pour génériser ma DB et plus particulièrement la table qui reprend les données clients mais un exemple sera plus parlant.

    Projet1 :

    Nom_Personne - Tel - GSM - Municipalité - Département - Région - ...

    Projet2 :

    Nom_Société - Nom_contact1 - Tel1 - Nom_contact2 - Tel2 - ...

    Projet3 :

    Nom_société - Taille_entreprise - Domaine_d'activité - ...

    Projet4 :

    Nom_société - ContactFR - TelFR - ContactANG - TelANG - ...

    Et ainsi de suite. Sachant que sur un projet je peux avoir jusque 30 champs différents.

    Pour faire plaisir à mon collègue qui a plus d'ancienneté que moi, nous travaillerons sous Windev (une première pour moi).
    Étant habitué à travailler sous Visual Studio, je suis assez perdu tant par la logique de Windev que par sa documentation.

    Je me retourne donc vers vous pour savoir comment gérer les données clients.

    J'ai pensé à 2 possibilités :

    - Faire une seule table données clients avec des champs génériques dans le style

    CHAMP1 CHAMP2 CHAMP3 CHAMP4 CHAMP5 ...
    String Int String String Date ...

    L'idée est donc de définir ce que représente les rubriques de la table pour chaque projet en dehors de la table. Mais j'ai du mal à définir que, pour le Projet1, le CHAMP1 représente Nom_Personne, pour le Projet2 Nom_Société et ainsi de suite.

    - Créer une table par projet :

    Le plus simple serait de créer une table par projet de manière dynamique. À chaque nouveau projet, l'application ajouterait une table spécifique mais comme dit précédemment, l'environnement Windev (et donc HFSQL) m'est encore assez inconnu.

    Quelqu'un aurait-il quelques conseils ou idées à le proposer?

    D'avance merci.

  2. #2
    Membre expérimenté
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    janvier 2012
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : janvier 2012
    Messages : 586
    Points : 1 349
    Points
    1 349

    Par défaut

    Bonjour,

    Le meilleur conseil, c'est de commencer par le cours d'autoformation, non ?

  3. #3
    Membre éclairé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    septembre 2008
    Messages
    1 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 1 148
    Points : 863
    Points
    863

    Par défaut

    Bonjour,

    Je structure ma base de données comme décrit ici : https://www.developpez.net/forums/d1...e/#post9863787
    Un Gone parmi les Gones

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2014
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    Tout d'abord merci pour vos réponses.

    serendib :

    J'ai lu (en diagonale, j'avoue) les modules d'autoformation et les exemples présents utilisent un DB bien définie ce qui n'est pas mon cas.

    WDKyle :

    Tu peux m'en dire davantage?
    J'avais créé une table qui fait le lien entre les champs de ma table données clients et le projet.
    Cette table reprend le champ de données clients, sa correspondance pour le projet en question.

    Projet1 - Champ1 - Nom_Personne
    Projet1 - Champ2 - Tel
    Projet2 - Champ1 - Nom_Société
    Projet2 - Champ2 - Nom_contact1
    ...

    Mais après avoir récupéré (par HExécuteRequêteSQL) les données clients avec les bons noms de champs, je ne sais pas comment parcourir mes données car je ne connais pas les arguments de retour.
    J'ai hésité à passer par une vue (HCréerVue) afin de donner le schéma de cette vue comme description de la source de données de ma requête SQL mais n'y a-t-il pas plus simple?

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 109
    Points : 4 411
    Points
    4 411

    Par défaut

    Ici, on en est à la phase 'Analyse'. L'analyse ne dépend pas du langage utilisé.

    Si tu travaillais avec VisualStudio, tu ferais comment ? ... Tu as a priori une solution, une idée des tables que tu créerais. Ta solution VisualStudio, elle sera également valable avec Windev.

    Dans Visual Studio, il me semble que la Base de données est SQLServer.
    A partir de Windev, tu peux lire du SQL Server.

    Tu peux même programmer en utilisant SQLServer pour tes données, puis au moment du passage en production, tu changes d'avis, ta base de données n'est pas SQLServer, mais HFSQL : pas grave, il y a juste 3 ou 4 lignes à changer dans la fenêtre de login et tout va bien (... en principe... si tu as fait des choses très compliquées, ça peut mal se passer).
    Et ça peut être l'inverse, c'est plus courant dans ce sens là : tu programmes en imaginant que ce sera du HFSQL, et au final, tu installes avec du SQLServer.

    Pour la phase analyse, HFSQL ou SQLServer, c'est pareil.
    Pour la phase suivante, il y a des ordres SQL qui sont acceptés par SQLServer et pas par HFSQL , et inversement : SELECT TOP 10 id_produit from produit dans un environnement, ça peut devenir select id_produit from produit limit 10 dans l'autre environnement....
    C'est des problèmes comme ça qui peuvent apparaître quand on utilise en production un moteur SQL différent de celui qui était prévu au départ.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 47
    Points : 53
    Points
    53

    Par défaut

    bonjour,

    moi pour cela j'utiliserais la bonne vieille méthode merise et je ferais un dictionnaire des données pour commencer
    Cordialement JeAn-PhI

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2014
    Messages : 3
    Points : 1
    Points
    1

    Par défaut

    En effet, on en est à l'analyse.
    Mais l'analyse s'est +/- limitée à, tu vois ce qu'on faisait dans 15 fichiers Access différents, tu les rassembles en une application à laquelle tu permets de rajouter facilement de nouvelles demandes d'un futur client. Qu'on ne connait pas encore bien sur...

    Je ne dis pas que Windev ne vaut pas Visual Studio mais j'ai mes habitudes avec les IQeryable entre autres. Et j'ai peut-être été mal aiguillé au début mais j'ai un mal fou à simplement parcourir ma DB via Windev. Je l'ai créé dans Windev et si je ne mets pas de données dedans, impossible d'accéder aux tables dans le centre de contrôle HFSQL et cela ne me semble pas intuitif de devoir lancer la FEN_Tableau_MATABLE pour visualiser les données.


    Voici l'analyse de ma DB actuellement. J'ai entouré en rouge la table données clients (Data_Client) et la table qui relie les champs avec leurs références selon le projet (ChampParProjet).

    Nom : CallCenterOperateur.eu.jpg
Affichages : 44
Taille : 659,6 Ko

    Mon problème est actuellement de ne pouvoir récupérer simplement dans la table Data_Client que les champs référencés dans la table ChampParProjet selon le projet voulu et avec le libellé non générique.

    PS : Si certains trouvent cette DB complètement foireuse, je l'imagine bien mais ceci est le résultat d'un mélange d'éléments très disparates à la base.

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 2 109
    Points : 4 411
    Points
    4 411

    Par défaut

    Sur l'analyse, je ne vais pas me prononcer, je n'ai pas d'opinion.
    Sur le fait de pouvoir parcourir ta DB via Windev, je penses que tu peux essayer ceci :

    Tu as créé un projet Windev, tu as associé ton analyse à ce projet.
    Tu crées une fenêtre, et un bouton avec le code : hcreationsiInexistant("*").
    Et tu lances cette fenêtre.

    Ceci va te créer un fichier vide pour chacun des fichiers déclarés dans l'analyse. Ainsi, tu devrais pouvoir les visualiser via Windev.

    Regarde quand même profondément l'aide de la fonction hChangeRep() ; C'est peut-être ça qui te perturbe le plus par rapport à tes habitudes.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    mai 2003
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : mai 2003
    Messages : 332
    Points : 561
    Points
    561

    Par défaut

    Bonjour,

    Perso je commencerai par créer des tables pour les n° de téléphones, les adresses, les adresses mail. Ca permet d'avoir autant d'adresses , de n° de tel, ou d'adresses email que tu souhaites pour un client ou un contact. Ce sera aussi plus efficace si tu dois faire des recherches sur un n° ou une adresse mail.
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/01/2007, 21h36
  2. [SQL SVR 2K]Données contenant double quote
    Par Franck2mars dans le forum MS SQL-Server
    Réponses: 1
    Dernier message: 11/01/2007, 11h46

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