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

Administration MySQL Discussion :

Creation de vues.


Sujet :

Administration MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Creation de vues.
    Bonjour,
    Je suis en train de concevoir un outil d'extraction de données et de reporting. Cette application utilise une base de données MySQL qui est alimentée par deux autres applications et j'aimerais créer des vues sur lesquelles mon application de reporting va s'appliquer pour envoyer les données, ce qui me permettra de ne pas utiliser les tables de prod.
    Maintenant, si quelqu'un a une idée sur comment je peux automatiser la création des vues pour mon application sans qu'elle puisse occasionner des bugs au niveau applicatif (si un utilisateur est en train d’exécuter une extraction) ?
    Et, selon vous, quelle est la meilleure solution pour ne pas toucher aux tables de prod et rendre performantes mes requêtes??
    Merci.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Si ton logiciel ne fait qu'extraire des données, les tables et leur contenu ne seront jamais modifiés par l'application.
    Mais c'est une bonne idée d'utiliser des vues plutôt que d'interroger directement les tables.
    Par contre, ai-je correctement compris que tu souhaites que ton application crée des vues ? Au sens VIEW en SQL ?

    La bonne pratique est de créer dans la BDD les vues dont ton appli aura besoin et le code de l'application n'interroge que ces vues.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Oui CinePhil je d'accord que la bonne pratique c'est de créer des vues au niveau de ma base et de les interroger à chaque fois. Maintenant mon souci est de savoir comment je peux mettre à jour les vues dynamiquement sans que ça impacte sur l'utilisation de mon application. Est-il possible de mettre à jour les vues en meme temps qu'un utilisateur est connecté?
    Merci pour ta réponse rapide.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Que veux-tu dire par "mettre à jour les vues dynamiquement" ?

    Tu peux donner un exemple de ce que tu comptes faire ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Au fait ce que je veux savoir c'est comment arriver à toujours avoir les données à jour dans mes vues?
    Ex.
    Je crée une vue "PROJECT_VIEW" qui regroupe toutes les informations sur mon projet (les dépenses "TB_DEPENSES" et les personnes qui travaillent sur ce projet "TB_PERSONNE").
    Je lance mon application pour extraire les données. Donc les requetes se feront sur ma vue "PROJECT_VIEW". Et si après "TB_DEPENSES" et "TB_PERSONNE" sont mises à jour comment je peux faire pour que "PROJECT_VIEW" soit aussi à jour sachant qu'une vue n'est créée qu'une seule fois?

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Sous MySQL, les vues ne sont pas matérialisées, ce qui signifie qu'à chaque fois que vous interrogez une vue, celle-ci interroge directement la ou les tables vers lesquelles elle fait référence.
    La seule chose qui peut, éventuellement, faire que le résultat renvoyé ne soit pas à jour, c'est l'utilisation du cache de requête par MySQL quand vous réexécutez un SELECT sur une vue.
    Pour éviter l'utilisation de ce cache (et donc avoir des données à jour), il faut faire suivre le SELECT par le mot-clef de MySQL SQL_NO_CACHE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SQL_NO_CACHE *
    FROM ma_vue
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci Ced!
    Donc si je comprends bien, une fois que je crée mes vues dans ma base de données, je n'ai plus à me soucier des données vues parce qu'à chaque fois, les requêtes de SELECT sont lancées, sachant que la vue interroge les tables auxquelles elle fait référence.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Oui, une vue n'est qu'une requête enregistrée.
    Interroger la vue lance la requête enregistrée avec des critères complémentaires.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Good Job les maitres!!!Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CREATION des VUES
    Par hosnik dans le forum Informix
    Réponses: 3
    Dernier message: 12/10/2006, 01h27
  2. creation de vue avec mysql4.1.9
    Par fk04 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/08/2006, 16h26
  3. Erreur en création de vue
    Par arcane dans le forum Requêtes
    Réponses: 5
    Dernier message: 04/07/2006, 23h06
  4. [PDE] Creation de vues a partir d'une autre vue
    Par indoloic dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/03/2006, 14h34
  5. creation de vue-version de MySQL
    Par vali7 dans le forum Installation
    Réponses: 3
    Dernier message: 11/01/2006, 15h37

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