Avis sur une Base de données

Je me lance dans la recréation de mon Zine, je compte le faire en PHP avec une petite BD qui risque de vite grossir. Je veux pas que ca devienne le bordel…
J’aimerais surtout rendre un maximum de recherches croisées possibles.

Je suis un débutant en PHP et Mysql, alors je demande l’avis des plus habitués, voire professionnels sur la question.

J’ai fait un tableau au format HTML de ma base : http://maune666.serveftp.net/dev/bd.htm

Si vous pouviez me dire si cela a l’air bon, et sinon me guider ce serait génial! :slight_smile:

Bhouhou moi c’est mon metier :stuck_out_tongue: Enfin c’est pas le pire de ce qu’on fait :frowning:

Ca se voit tout de suite ceux qui ont fait de l’analyse, même si cette année j’aime pas à cause de la prof, ca permet de faire des bases de données complètes et sans défaut.
Et puis rien de tel qu’un MCD pour tout de suite voir les défaut et les qualités d’une base.

Il y a des idées mais beaucoup de choses qui n’auront pas de liens…
En fait les news n’ont RIEN à voire avec le reste…
Ca c’est obligatoire pour la cohérence de mon site.
Autrement oui j’aurais créé ces tables…

[quote]Dit Xentyr tu travailles dans les bases de données car tu as l’air tout de suite de savoir ce qui pourrait etre amélioré ?[/quote]Houlà malheureux, non :wink: Ce ne sont que des restes de ma 2ème (edit: euh 1ère en fait) année d’école d’ingé, là : analyse la plus rationnelle (enfin on essaie) d’une situation donnée, blabla,…, ce pourquoi on est formé en fait ! :smiley:

[Edité le 12/1/2003 par xentyr]

Je crois que Xentyr a très bien résumé la situation, c’est vrai que moi j’aurai fait plus de lien pour lier les news au groupe, concert, musicien,… c’est vrai que ca fait une plus grande base avec beaucoup plus de table mais bon, ca permet d’être beaucoup plus complet et au final ca sera surement plus simple que de tout gérer à la main.
Dit Xentyr tu travailles dans les bases de données car tu as l’air tout de suite de savoir ce qui pourrait etre amélioré ?

[quote]Ma base comme elle est faite me permet déjà ces recherches…[/quote]Je n’en doute pas, jusqu’à un certain point :wink:

Par exemple, je ne connais pas Kirby (shame on me, je sais :D). Or dans ta news, tu annonces qu’il s’est blessé… Mais rien ne le relie à Kirby le musicien (je suppose)… J’aurais bien aimé relier Kirby le musicien au Kirby de la news. Dans l’autre sens, imaginons que je sois sur « Kirby le musicien, sa vie, son oeuvre ». J’aurais bien aimé savoir aussi qu’il s’était blessé il y a 6 mois, ce qui explique le report de la sortie du nouvel album, du groupe auquel il appartient, et ça, c’est une info pertinente…:slight_smile:
Avec un système permettant de gérer les infos importantes de ta news (genre à la fin d’une news, tu mets toutes les infos reliées à celle-ci), tu foirerais beaucoup moins, connaissant ta (j’extrapôle à partir de mon XP ;)) rigueur lorsque tu mets à jour ta BdD. Sinon, il faudra ajouter le lien à la main avec tous les risques d’erreurs/oublis qui en résultent (et les liens en HTML augmenteront inutilement la taille de ta base) : Imagine par exemple une news sur un festival local avec 6-7 groupes. C’est autant de liens à rajouter à la main dans le texte de ta news.
L’autre raison, c’est que tu sépares ainsi vraiment les informations de la mise en page. Enfin,
la dernière des raisons est qu’une recherche textuelle aussi SAIMAL :P.

[Edité le 12/1/2003 par xentyr]

en fait, maune666; tu t’y connais bien en SQL ? car si tu as besoin d’un coup de main, y’a pas de problème pour moi. Il suffit de demandé sur cafzone grace à la messagerie ou dans ce post.

Sinon pour les Bases, sache qu’il n’y a jamais qu’une seule solution, ta base correspond surement à tes besoins, même si je suis d’accord avec les remarques de xentyr.

Ma base comme elle est faite me permet déjà ces recherches…

[quote]En fait la table discographie est remplie des cd des groupes dont j’ai chroniqué au moins un cd ou réalisé une interview.[/quote]Le schéma te montre donc qu’il manque un lien car interviews et chroniques doivent aussi se retrouver dans ta BdD.

De même tu peux commencer à réfléchir à un système de typage des infos de ton site, par exemple une news sur des concerts importants, devra être reliée d’une manière ou d’une autre aux groupes présents à ce concert (première partie ou autres…), mais aussi au concert en tant que tel, et justement tes interviews devront être reliées aux interviewees, comme au groupe auquel ils appartiennent, une chronique devra être reliée à toutes les infos y attenant : chanteur (biographie, ses différents groupes,… ah non pas possible un groupe par chanteur :D), groupe, style musical (ah non c’est pas possible vu que tu veux pas faire de table séparée :)), salle de concert, merchandising, ou que sais-je encore…

Tu me diras, « ça me semble hyper lourd comme système ». Je te répondrai « ce n’est pas lourd, c’est rigoureux, nuance :P ». En effet, mieux vaut prévoir large au début et restreindre ensuite que le contraire. Tous ces ajouts que je suggère là sont pour qu’il te soit beaucoup plus facile de mettre en place un vrai système d’info avec des recherches efficaces, ce qui quand même rend un site BEAUCOUP plus intéressant que la myriade d’existants qui ont malheureusement eu droit à un accouchement trop prématuré :wink:

[quote]Très très fort pour un début maune666 !!!

Et si tu veux savoir une application concrète du schéma, il m’a permis d’observer au premier coup d’oeil la TRÈS FORTE similitude entre les tables Sortie CD et Discographie !

Du coup, il y a un léger truc auquel tu devras faire attention : Si la base reste en l’état, tu vas être obligé de mettre en place un trigger entre ces deux tables pour passer de l’une à l’autre en fonction de la date, si au jour J, la confirmation est toujours de mise ! Ça peut se faire à la main au début, mais ce sera à automatiser ensuite : par exemple pour tes absences, style pendant l’été, mais surtout si ta BdD commence à grossir. Car faire la même chose va te gonfler sévère, et du coup, tu pourrais ajouter des erreurs au moment de la maj de la BdD, et ça SAIMAL :smiley:

Tips : Si tu veux pas te casser les pieds, essaie de voir si tu peux pas fusionner ces 2 tables en rajoutant par exemple un champ Confirmation à la table Discographie :wink:

[Edité le 12/1/2003 par xentyr][/quote]
La différence est que la table discographie est liée au site et la table sortie non. La table sortie est un agenda. Donc je ne veux absolument pas la lier à l’autre. Je sais pas si mon intention est claire…
En fait la table discographie est remplie des cd des groupes dont j’ai chroniqué au moins un cd ou réalisé une interview.

Très très fort pour un début maune666 !!!

Et si tu veux savoir une application concrète du schéma, il m’a permis d’observer au premier coup d’oeil la TRÈS FORTE similitude entre les tables Sortie CD et Discographie !

Du coup, il y a un léger truc auquel tu devras faire attention : Si la base reste en l’état, tu vas être obligé de mettre en place un trigger entre ces deux tables pour passer de l’une à l’autre en fonction de la date, si au jour J, la confirmation est toujours de mise ! Ça peut se faire à la main au début, mais ce sera à automatiser ensuite : par exemple pour tes absences, style pendant l’été, mais surtout si ta BdD commence à grossir. Car faire la même chose va te gonfler sévère, et du coup, tu pourrais ajouter des erreurs au moment de la maj de la BdD, et ça SAIMAL :smiley:

Tips : Si tu veux pas te casser les pieds, essaie de voir si tu peux pas fusionner ces 2 tables en rajoutant par exemple un champ Confirmation à la table Discographie :wink:

[Edité le 12/1/2003 par xentyr]

Je me suis basé sur là doc officielle, c’est à dire ca : http://dev.nexen.net/docs/mysql/annotee/ma…olumn_types.php

Tu es peut etre plus efficace sur des petits projets personnels ms lorsque tu dois développer une grosse application à plusieur développeur, tu dois respecter un cahier des charges pour que chaque partis développer séparément puissent marcher ensemble.
Et puis avant de développer une application pour un client, il faut que celui ci sache exactement ce qu’on va lui développer dans le cas où il ne serait pas d’accord. Ca permet d’avoir une sécurité en lui disant : “dsl mais vous avez signer pour que l’on vous développe ca, donc on vous a développez ca, c’est dans le cahier des charges”.
Mais bon, moi personnelement j’aime pas l’analyse, je préfère coder.

Sinon pour les types, je n’ai pas les docs ici donc je te posterai mes remarques cette semaines depuis l’IUT, mais normalement il ne devrait pas avoir de problèmes.

Ah ok, mais moi même quand je faisias de la programmation j’ai jamais fait d’analyses…
C’est con mais je suis plus efficace sans…

J’ai ajouté les types de champs à ma page HTML (lien en haut du thread)
Tu pourrais me dire si c’est bon?

Disonc que tu n’as pas très bien compris l’utilité du MCD, il appartient à une métode d’analyse appelé merise, normalement le tableau (appelé MLD dans cette méthode d’analyse) n’intervient qu’à la troisième étape.
Tout d’abord on recherche les informations : id_groupe,… que l’on énumère sans regroupement.
Ensuite les regroupes en entités (les carrés dans le MCD) puis on fait les liens.
C’est alors qu’une fois le MCD créer, on crée le MLD.

Le MCD permet de faire apparaitre des choix plus clairement, par exemple le fait de choisir qu’un musicien appartient à un seul groupe ou qu’un musicien peut apartenir à plusieur groupe dans le cas où le groupe se disperse et que de nouveaux groupes apparaissent.

Mais bon, je vais pas ressortir mon cours d’analyse car ca fait un bout de temps que j’ai pas été en cours.
Pour les types, faudrai que je regarde dans mon bouquin mais ce n’est certainement pas ca le plus dur.

C’est marrant car moi je vois pas l’utilité de ce shéma…
Je trouve mon tableau plus clair…
:stuck_out_tongue:

La table chronique-concert n’est pas une table lien, c’est la table chronique. elle se nomme comme ca juste pour signaler que ce sont les chroniqus de concerts.

Les news c’est juste comme ca… ca a rien à voire avec le reste de la BD, ca me servira juste à décrire l’actualité et l’actualité n’est pas toujours liée au contenu de mon site…

Mais je peux me lancer dans la création tu crois?
Le plus dure va être de féfinir le type de champs aussi. Je suis pas pro pour ca.
Vais chercher un peu de doc…

J’ai bien regardé ce que tu avais fait, voici le MCD :

En grand : http://zgoblin.free.fr/MCD/MCD.jpg

Ta base tient très bien la route, d’ailleur tu es très fort de faire une base de donnée comme celle-ci (qui est assez grande) sans faire le MCD avant, moi j’en serai incapable, on risque trop d’oublié des informations ou des entités.

J’ai deux choses qui on attirait mon attention, tu as une table chronique-lien et je n’ai pas trouvé la table chronique, soit c’est un oubli de ta part soit c’est moi qui ait mal lu.
Si il n’y a pas d’erreur, je te conseil de déplacer l’information chronique dans la table concert.

La deuxième chose qui m’a surpris, c’est que tes tables news et news-locales ne sont relié à rien du tout, ni à un groupe, ni à un lien.

Voila, c’est tout ce que j’avais à dire.

[Edité le 12/1/2003 par ZGoblin]

J’ai apporté quelques modification.
Juste une table lien entre musicien et groupe.

Il te manque toute les tables d’arc pour les relations n-n qui ne manquent pas dans ton schema. :slight_smile: A part ca je juge pas le contenu de ce que tu veux stocker parceque c’est a l’utilisation/planning qu’il faut voir ce que tu juge utile ou pas.