Pour ceux qui ne sont pas spécialistes des bases de données, un petit topo : une base de données est un objet complexe, qui comprend une série de fichiers (les tables) sur le disque dur, contenant tous les documents, et reliées entre elles, accompagnés d'autres fichiers, de contrôle.
Ces fichiers ne sont pas accessibles directement par l'utilisateur,mais seulement à travers un logiciel faisant partie de la base, qui permet d'écrire/lire/modifier les données.
Cela se fait par l'intermédiaires de requêtes, que l'on envoie à ce logiciel, et de vues, qui sont les réponses extraites des tables par ce logiciel.
Exemple (francisé et simplifié en langage Humain de requête adressable à une base de données :
Chercher dans la table "locomotives" tous les noms commençant par "A1A" ET ( "energie"= "diesel" ou "energie"= "turbine") ET «epoque="IV".
Comme ces requêtes peuvent être assez complexes, et leur utilisation peut mettre en danger l'intégrité de la base de données, elles sont souvent masquées, elles aussi, à l'utilisateur, qui n'a accès qu'à une page de formulaire.
Bien que ma page "
http://jcbecker.free.fr/_Expos_/Reportages_Photos_N_Expos_.php" n'utilise pas de bases de données, mais un jeu de tableaux de données, son fonctionnement est similaire : Cette page vous donne accès à des cases à cocher, à des listes déroulantes...
Vous faites votre choix et vous cliquez sur "Envoyer" , Vos choix sont alors transmis au serveur qui gère le site WEB, qui le transmets au programme qui va écrire pour vous la requête.
Ce programme transmets à son tour la requête au programme de la base de données, qui va extraire les données concernées, les trier suivant votre désir, et vous les renvoyer via l'itinéraire inverse.
C'est ce qui se passe avec le forum : Quand vous écrivez un message, vous utilisez en fait un formulaire, qui va créer la requête qui va inscrire votre message dans la base de données,. Puis vous consultez des vues quand vous lisez les messages.
Le problème qui se pose pour le Forum est : Le(s) administrateur(s) du Forum sont-ils autorisés à écrire leurs propres requêtes ?
Si oui, pas de problème, mais je n'y crois pas trop, car cela peut constituer un "trou de sécurité" dans la gestion du Forum, avec des administrateurs apprentis-sorciers (heu, Thomas, je ne parle pas de toi !).
Si non, alors il faut ouvrir un nouveau compte ailleurs, et cela devient beaucoup plus compliqué si on veut restreindre les droits (par exemple, limiter l'accès en lecture d'une partie de la base de données aux seuls membres du Forum, ou limiter l'écriture à des groupes de membres, avec un couplage des tables des membres dans les deux bases.
Voilà pour la théorie,
En pratique, j'avais djà songé à mettre cela en place du temps où je m'occupais du site WEB d'une Association de Modélisme et fait des brouillons et des tests, Mais, vu l'ampleur du travail, et la pression et le stress que la hiérarchie faisait poser sur moi, j'y avais renoncé,
Maintenant que j'ai « rendu mon tablier » de webmestre et que le Président de cette Association m'a éjecté du Bureau, je me sens libéré de tout lien et dégagé de tout devoir de réserve ,et peut donc étaler ici les fruits de mes travaux,
(J'insiste, ce ne sont que des réflexions personnelles, qui ne demandent qu'à être discutées/améliorées, voir contredites)
Tout d'abord, une table peut être considérée comme un tableau, avec un objet différent par ligne, et une caractéristique différente pour l'ensemble des objets, par colonne.
Comme une gare, un TGV et un wagon de charbon n'ont guère de caractéristiques en commun, la première constatation est que la base de données doit comporter plusieurs tables spécialisées :
- Engins moteurs (locomotives, locotracteurs, ...)
- Engins automoteurs (Autorails, automotrices, TGV, Tramways,...)
Véhicules remorqués (voitures voyageurs, wagons, remorques d'autorails, remorques de trams, ...)
- Bâtiments,,,
Cette liste n'est pas limitative !
Ensuite, si on veut entrer les caractéristiques du fabricant, on ne va pas mettre son nom, son adresse courrier, son adresse électronique,... dans chaque ligne de chaque objet qu'il vend.
Donc, il faut une table auxiliaire sur les fabricants, avec un lien entre cette table et les précédentes,
dans la foulée : on peut créer aussi des tables auxiliaires pour les modèles réels,et pour des variantes de ces modèles, comme les livrées, les bogies, ,,,
Et la requête construite à partir de la page de formulaire pourrait être
Dans la table bogies, afficher le nom, les caractéristiques, et la photo des bogies pour, dans la table Wagons, les wagons de type =biere ET de type Epoque =II ET (de type Isotherme=OUI OU de type Refrigere=OUI) ET de fabricant=Untel.
Si on se lance dans une telle tâche, il faudrait découper le travail en plusieurs étapes :
1.Recherche des catégories d'information à stocker/présenter (Moi, je veux ça...)
2.Sur le papier,Définition des différentes tables, evrc pour chacune, la définition de ses schamps, et les liens entre les tables. Ce travail ne peut être fait que par des spécialistes de création de base de données.
3.Ctréation des tables vides, des formumaires pour les remplir, des formulaires pour les consuter, et des vues ontenues. Ce travail ne peut être fait que par des spécialistes de création de base de données ayant rang d'administrateur de la base de données (Connaissance du mot de passe administrateur de la base de données, mais pas celui du Forum)
4.Remplissage des tables, depuis des pages de formulaires,. C'est le travail le plus long et le plus répetitif, donc le plus lassant, Il serait sage d'affecter une équipe de volontaires par table, une même personne pouvant appartenir à plusieurs équipes.[url]