Showing entries 1 to 6
Displaying posts with tag: vue (reset)
MySQL 5 : Les vues — (part 7/7)

(<- précédent)

Conserver la structure d’une table si elle doit être modifiée

La problématique est de mettre à jour le schéma de l’application en changeant la structure de certaines tables.

Changer le schéma a comme principal impact d’obliger de modifier les requêtes de l’application. Il sera donc nécessaire de les identifier pour les mettre à jour à leur tour, ce qui peut rapidement devenir fastidieux. Au travers de l’exemple qui suit, nous allons créer une vue qui va masquer le changement de table ce qui nous évite de modifier les requêtes applicatives. Une nouvelle version de l’application pourra utiliser la nouvelle table sans être obligé d’utiliser la vue, on assure ainsi la compatibilité ascendante.

Ma table de départ est la table livre:

CREATE TABLE 'livre' …
[Lire plus]
MySQL 5 : Les vues — (part 6/7)

(<- précédent)

Modifier automatiquement des données sélectionnées

Pour ce troisième exemple, nous allons nous intéresser au schéma (là encore très simplifié) d’une application qui permet de vendre des produits en France et au Royaume-Uni, en euro, livre et dollar. Cette application possède une table produit, qui contient le produit (son identifiant) et son prix hors taxe en euro.

Structure de la table produit:

CREATE TABLE produit (
  id_produit mediumint(8) unsigned NOT NULL auto_increment,
  prix_ht decimal(6,2) default NULL,
  PRIMARY KEY  (id_produit)
)

Nous disposons également des tables devise et tva qui gèrent respectivement le taux de change des devises et la TVA de différents pays.

Tables devise et tva:

CREATE TABLE …
[Lire plus]
MySQL 5 : Les vues — (part 5/7)

(<- précédent)

Masquer la complexité du schéma

L’équipe de développement doit écrire un moteur de recherche pour une application de commerce électronique. Voici un extrait des tables de la base de données impliquées dans la recherche des produits du site.

La difficulté est de générer la bonne requête avec les bonnes jointures (plus d’une dizaine), à chaque recherche. Une solution pour faciliter le travail des développeurs est de créer une vue qui fait référence à toutes les tables impliquées dans la recherche des produits. Les recherches se feront donc sur cette vue, avec des requêtes plus simples à écrire.

La vue est créée avec l’algorithme TEMPTABLE, les verrous sur les tables sous-jacentes seront libérés plus rapidement ce qui permettra de moins pénaliser les autres requêtes. …

[Lire plus]
MySQL 5 : Les vues — (part 4/7)

(<- précédent)

Utiliser les vues

Voici quelques exemples pratiques très simples pour illustrer les différents besoins auxquels peuvent répondre les vues. On aura ici, une vue administrateur de base de données. Les objets créés ne seront pas utilisés directement par les utilisateurs mais aux travers d’une application.

Contrôler l’intégrité en restreignant l’accès aux données pour améliorer la confidentialité

La table employe de mon application, contient toutes les informations sur les employées.

CREATE TABLE `employe` (
  `id_employe` int(10) unsigned NOT NULL auto_increment,
  `nom` char(45) NOT NULL,
  `prenom` char(45) NOT NULL,
  `tel_perso` char(10) NOT NULL,
  `tel_bureau` char(10) NOT NULL,
  `statut` char(45) NOT NULL,
  `ville` char(45) NOT NULL,
  `salaire` decimal(7,2) …
[Lire plus]
MySQL 5 : Les vues — (part 3/7)

(<- précédent)

Restrictions

Lors de la création d’une vue, certaines contraintes doivent être prises en compte :

  • Il n’est pas possible de créer un index sur une vue
  • La vue ne peut pas contenir de sous-requêtes dans la clause FROM du SELECT.
  • Il n’est pas possible d’utiliser de variables dans une vue.
  • Les objets (tables et vues) nécessaires à la création de la vue doivent exister avant de la créer.
  • Si un objet référencé par la vue est effacé, la vue n’est alors plus accessible.
  • Une vue ne peut référencer une table temporaire (TEMPORARY TABLE)
  • Il n’est pas possible de créer des vues temporaires.
  • Il n’est pas possible d’associer un trigger à une vue.
  • La définition d’une vue est “gelée” dans …
[Lire plus]
MySQL 5 : Les vues — (part 2/7)

(<- précédent) Syntaxe d’une vue CREATE VIEW


La commande MySQL pour créer une vue est assez proche de la syntaxe du standard SQL.

CREATE VIEW nom_de_la_vue AS requête_select
CREATE TABLE etudiant (
id_etudiant int unsigned primary key,
nom char(30),
prenom char(30),
age tinyint unsigned,
cursus enum('Licence', 'Master', 'Doctorat'));
CREATE VIEW v_etudiant_liste AS SELECT nom, prenom FROM etudiant;


Après avoir créé la table etudiant, on crée la vue v_etudiant_liste qui contient le nom et le prénom des étudiants.


Il est possible d’ajouter d’autres informations lors de la création de la vue:

CREATE
[OR REPLACE]
[ALGORITHM = …
[Lire plus]
Showing entries 1 to 6