> Tech > Les jointures de SharePoint 2010

Les jointures de SharePoint 2010

Tech - Par iTPro - Publié le 27 janvier 2012
email

Avant d'attaquer le code du projet, nous allons décrire l'architecture du site que nous allons utiliser pour démontrer l'utilisation des jointures. Nous allons disposer de 3 listes.

La première se nommera Pays et contiendra les valeurs suivantes : voir figure 3.

Nous avons

ensuite la liste Villes : voir figure 4.

Le champ Pays est de type Lookup et pointe sur la liste des pays vue précédemment. Ceci est une condition pour effectuer des jointures entre deux listes. Effectivement, le champ servant à effectuer la jointure devra absolument être de type Lookup, vous verrez ensuite pourquoi. Enfin, nous avons la liste Monuments : voir figure 5.

Le champ Ville de cette liste est également un champ de type Lookup pointant vers la liste des villes.

Le but de cette architecture est assez simple. Nous avons la liste Monuments qui va nous permettre de stocker des monuments célèbres tels que le Colisée, la tour Eiffel,… Chacun de ces monuments se trouve dans une ville qui sera contenue dans la liste Villes. Et chacune de ces villes se trouvera dans un pays contenu dans la liste Pays. Nous n'exigeons pas que les Lookup contiennent des valeurs pour démontrer la différence entre les jointures de type INNER et LEFT. Vous avez certainement remarqué que le monument Projet n'a pas de ville. Effectivement, ce monument est un projet et la ville de ce monument n'a pas encore été choisie, nous n'avons donc sélectionné aucune ville.

Pour ceux qui ne savent pas ce que sont les jointures, nous allons expliquer cela tout de suite. Les personnes savant à quoi sert INNER JOIN,LEFT JOIN,… en SQL peuvent passer ce passage car il ne leur apprendra rien.

Le problème induit par cette architecture est assez simple. Imaginez que vous vouliez récupérer tous les monuments contenus dans la liste mais également les informations sur la ville et le pays de ce monument. La technique en SharePoint 2007 serait de faire une première requête récupérant tous les monuments, une deuxième requête récupérant les villes et une troisième requête récupérant les pays. Ensuite, selon un système de stockage en mémoire à base de classes, vous vous seriez arrangé pour que les monuments soient liés aux villes et les villes aux pays.

Cela aurait bien fonctionné mais n'aurait pas été très performant. Dans SharePoint 2010, la technique utilisée sera les jointures. Effectivement, il va être possible de réaliser les 3 requêtes en une seule. Pour cela, la requête devra dire :

Récupérer tous les monuments en liant les villes de ces monuments et les pays de ces villes

La requête renverrait donc toutes les informations d'un coup. Bien entendu, la jointure devra être effectuée sur une certaine valeur. En français cela donnerait :

Récupérer le monument X ainsi que la ville du monument X

Donc, si nous nous basons sur notre architecture actuelle et que nous voulions récupérer la Tour Eiffel, nous dirions :

Récupérer le monument pour lequel le titre vaut Tour Eiffel et récupérer la ville dont le titre vaut la valeur du champ Ville du monument (donc Paris).

Sous SharePoint 2007, il aurait été impossible de traduire cette requête en CAML. C'est maintenant faisable en SharePoint 2010.
 

Téléchargez gratuitement cette ressource

Endpoint Security : Etude IDC Enjeux & Perspectives

Endpoint Security : Etude IDC Enjeux & Perspectives

Quel est l'état de l'art des solutions de Endpoint Security et les perspectives associées à leur utilisation ? Comment garantir la sécurité des environnements sensibles en bloquant au plus tôt les cyber attaques sophistiquées, avant qu’elles n'impactent durablement vos environnements de travail ?

Tech - Par iTPro - Publié le 27 janvier 2012