Bonjour tout le monde,

Je suis en train de me (re)mettre à php pour la création du site web de mon association. Le problème est que je ne sais pas comment organisé ma base de données. Voici ci joint le design de mon site.

Comme vous pouvez le remarquez j'ai différent type de contenu que je compte pouvoir modifier par le biai d'une interface d'administration et qui donc doivent être stocké (ou peut être pas en faite) dans une base de donnée.

Contenu modifiable :

  • une citation
  • 4 chiffres clés et leur légende
  • des références (on doit pouvoir en ajouter autant que l'on veut) : qui compte une image, une citation et le nom et la qualité de l'auteur.
  • le mot de la présidente

A première vue, je pense qu'il faut que je créé une table "référence" qui contienne l'ensemble des références.
Pour les quatres chiffres, j'ai peur de "tuer une mouche au bazooka" en créant une table spécifique pour ces seuls 4 chiffres.
Par contre pour le reste des contenus je ne sais pas comment faire à part créer une table "homepage" qui serait structuré de la sorte :


| id | role         | contenu             |
|----|--------------|---------------------|
| 1  | citation     | lorem ipsum ...     |
| 2  | chiffre1     | 40                  |
| 3  | légende1     | années d'expérience |
| 4  | chiffre2     | 23                  |
| 5  | légende2     | administrateur      |
| 6  | chiffre3     | 2050                |
| 7  | légende3     | étudiants cotisants |
| 8  | chiffre4     | 22                  |
| 9  | légende4     | études en 2015-2016 |
| 10 | motprésident | Lorem ipsum ...     |

Encore une fois, je trouve çà un peu exagéré de créer une table (surtout aussi mal agencé) pour si peu de contenu.
Je suis donc à la recherche de vos conseils éclairés :).

Merci d'avance ;)

7 réponses


arnich
Réponse acceptée

Perso j'opterai plus pour l'utilisation de fichier JSON

Kareylo
Réponse acceptée

La lecture d'un fichier json est plus rapide que de lire en BDD, surtout si la BDD est assez lourde. Par exemple, je suis sur l'utilisation d'une assez grosse base de données (une trentaine de tables dont 5 à plus de 5Go de données), et lire quelques informations dans un fichier est presque 100 fois plus rapide que de faire une requête dans cette base de données (Données liées entre-elles, etc...)

tleb
Réponse acceptée

Si il n'y a pas d'interaction des utilisateurs avec ces données, je vois pas en quoi tu as besoin d'un site dynamique. Tu comptes avoir une admin page pour modifier les infos ?

Si non, tu peux tout simplement générer les pages sur ton ordi avec les données qui vont bien puis upload le tout sur ton serveur. Tu pourrais te faire un fichier JSON avec ce qui change régulièrement et un script qui intègre ces données à tes pages et upload le site, si il n'y a que toi qui va modifier le site. Ca à l'avantage d'être plus simple + moins cher à host.

Grafikart
Réponse acceptée

Tu peux stocker les infos de bases (titre, slug, id) dans des champs classique et les éléments particulier dans un json stocké en base sous forme de chaine ou de JSON (supporté par mysql récemment)

Merci arnich pour ta réponse. C'est vrai que ca peut être une bonne solution. Est ce que la lecture d'un fichier json est aussi rapide/eficace qu'une requête mysql (après vu le contenu de la page je mettrai un cache) ?

Merci à tous, je vais donc suivre la voie du json.

@Kareylo merci pour l'info je n'étais pas au courant. Après c'est vrai que si l'on réfléchit, une requète SQL doit bien aussi passer par l'ouverture d'un fichier et sa lecture.

@tleb, je cherche à faire un site facilement modifiable. Je développe celui la pour remplacer un wix qui d'après les membres de l'asso est "génial de simplicité" mais pas forcément à mon gout. Le but étant que les futurs membres de l'asso puisse se débrouiller sans aucune notion de code. Donc je vais faire une petite interface d'administration pour cette page.

@grafikart ca me semble être la façon la plus simple pour mettre en place mon site merci pour l'idée ;). J'en profite de t'avoir sous la main pour te remercier pour toutes tes vidéos que j'ai toujours grand plaisir à regarder.

Oui la lecture d'un fichier JSON est tout aussi efficace et même plus rapide qu'une requete sur une base de donnée. Après tout dépends de tes besoins, un fichier JSON ne remplacera jamais une base de donnée, mais dans ton cas tu n'as que très peu d'informations et de pages il peut donc être plus judicieux d'opter vers la solution du fichier JSON. Après coté PHP, tu as juste à créer une interface d'administration avec des formulaires qui correspondent à tes informations dynamique (slogan, citations, texte etc..) et à modifier le fichier JSON lors du traitement de chaque formulaire. Ça se fait très facilement avec les fonctions suivante :

json_encode();
json_decode();
file_put_contents();
file_get_contents();

Je pense que ça peut-être une bonne solution, et ça rend la chose plutôt facile à maintenir tant que le site n'évolue pas trop avec des choses plus complexes par la suite.