Home Map
Buscar

RequĂȘtes et rĂ©cupĂ©ration de donnĂ©es

Ce chapitre expose les "normes" internes d'écriture pour la construction de modules et l'écriture des transactions vers la base données.

RÚgles sur le modÚle de données

Entités constitutives du MPD du module

Le modÚle de donnée de la plupart des applications Web identifie des "objets" principaux dont le site est une interface de gestion. Il est d'usage, pour développer un module :

  • d'identifier clairement l'identitĂ© du module > cette identitĂ© donne lieu Ă  la crĂ©ation d'une entitĂ© principale dans la base de donnĂ©e (exemple : "forum").
  • d'identifier la ou les entitĂ©s "Ă©lĂ©ments" gĂ©rĂ©s par l'entitĂ© module. Une rĂšgle efficace est de dĂ©terminer quelle est l'entitĂ© "Ă©lĂ©ment" principale, c'est-Ă -dire, l'entitĂ© individuelle dont le module est un "container" et de la nommer comme le module suivi du suffixe "item"  (par exemple : forumitem), ce qui adopte une lecture sĂ©mantique suivante : l'entitĂ© "moduleitem" est un contenu du container "module".
  • pour que les tables d'un module apparaissent ensemble dans la liste des tables de la plate-forme, il est souhaitable que toutes les tables annexes du module soient prĂ©fixĂ©es du nom du module. Par exemple : 

    default_catalog entité principale "container" : catalogue produits
    default_catalogitem entité contenu principale : élément de catalogue
    default_catalogcategory entité annexe : les catégories d'indexation du catalogue

Nommage et choix des attributs

Les attributs sont nommĂ©s en minuscule par des mots de prĂ©fĂ©rence simples, sans redondance avec l'entitĂ© "table". Les mots composĂ©s peuvent ĂȘtre utilisĂ©s lorsque la sĂ©mantique de l'attribut ne pourrait Ă©viter une confusion avec d'autres attributs.

La clef primaire est, sauf cas particuliers (tables de relation n:n, cas particuliers de clefs composites ou textuelles), la premiÚre colonne de la table et porte le nom Id :

Id INTEGER PRIMARY_KEY NOT NULL auto_increment,

Elle peut ĂȘtre auto-incrĂ©mentale si nĂ©cessaire et peut prendre tous les types entiers admis, suivant la plage probable de nombre d'objets.

RĂšgles sur le source PHP

Séquence d'appel de données (SELECT)

SĂ©quence type :

$query = "
   SELECT
     ...
";
$results = db_execute($query);
$objects = array();
while($anObject = mysqli_fetch_object($results)){
   $objects[] = $anObject;
}

Explication du "code style" :

  • La requĂȘte Ă  exĂ©cuter est TOUJOURS placĂ©e dans une variable ($query, $query1, etc.).
  • La requĂȘte est passĂ©e Ă  la fonction db_execute qui est une variante propriĂ©taire de mysqli_query intĂ©grant des commutateurs d'affichage de dĂ©boggage. La requĂȘte produit un tableau $results (requĂȘte sur attributs) ou un tableau $result en cas de rĂ©sultat unique (requĂȘte sur clef primaire). L'utilisation de $results ou de $result dĂ©pend donc de l'Ă©criture de la requĂȘte.
  • Un tableau d'objets PHP est initialisĂ©, d'un nom significatif par rapport Ă  l'objet de donnĂ©e matĂ©rialisĂ© en mĂ©moire.
  • Les objets rĂ©sultats de requĂȘte sont transfĂ©rĂ©s dans le tableau.

La rÚgle Controller-Vue interdit que tout affichage soit généré au moment de la matérialisation des objets de donnée en mémoire php. On se rappelle que la stratégie dominante est :

  • on matĂ©rialise l'ensemble des donnĂ©es nĂ©cessaires Ă  la production de la vue dans des structures de donnĂ©e mĂ©moire.
  • on rĂ©alise la vue par la suite, en explorant les structures mĂ©moires matĂ©rialisĂ©es :

...

// bien plus loin

...

foreach($objects as $anObject){
?>
       <!- do something in HTML -->
<?
}
?>

 
Requetes   
Interactividad :   Últimas noticias    Donaciones    Palabra del Webmaster    Libros de oro    Defectos   
 
Galeria Robert Hupka Miguelangel Exposiciones Editora Videos Prensa Libro de oro Realisación Descubrimientos