Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2006, 20h34   #1
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Par défaut Quel type de table choisir pour la création d'un forum

Bonsoir,

Cela a peut-être déjà été posé comme question, mais je me demandais quel type est le plus approprié entre innodb et myisam pour créer un forum ?

myisam est bien pour la recherche en fulltext, tandis que innodb gère les clefs étrangère, et entre ces 2 là je ne sais pas trop pour lequel opter.

Votre avis ?
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 09h38   #2
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Personnellement, j'utilise les deux.

Voici mon modèle très simplifié

Code :
1
2
3
 forum (id_forum, nom_forum,creation_forum,actif)
topic(id_topic,id_titre_topic,id_forum,creation_topic,moderation)
message(id_message,id_corps_message,id_topic,creation_message,id_corps_message,moderation)
Aucun champ de chaînes de caractères ne faisait partie de ces messages. Cela permet d'avoir des tables InnoDb avec des enregistrements de longueurs fixes ce qui allège les index.

Ensuite j'ajoute les tables MyISAM qui contiennent le texte et les index textuels.

Code :
1
2
 titre_topic(id_titre_topic, titre_topic)
corps_message(id_corps_message,corps_message)
Enfin ces deux tables ne sont jamais purgées, même si j'effacais le message de la base de données, je le conserverais.

A cela une vue est rajoutée et me fait automatiquement les jointures entre toutes ces tables pour faciliter le travail de développement un sens. Au passage cette vue me filtre les messages délestés depuis 15 jours et modérés.

Voilà la solution que j'ai adoptée.
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 16h34   #3
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Ton exemple, je le trouve vraiment pas mal, j'aurais jamais pensé à faire comme ça.

Sur tes tables innodb, tu te sers de clefs étrangères ?

Par contre, j'ai pas bien compris pour ce qui est des vues, j'en ai encore jamais fait, je vais regardé ça de plus près, merci
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 18h51   #4
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Une autre question, pour le titre d'un topic, varchar serait pas mal, cependant si l'on veut enregistrer les données déjà formaté pour l'affichage(afin d'économiser des ressources), 255 caractères n'est vraiment pas suffisant

Exemple en enregistrant avec un htmlspecialchars en php, si quelqu'un entre un titre du genre 100 chevrons, le nombre de caractères va être multiplié par 4, donc 400 caractères, donc je vois pas d'autre solution que de définir le titre des topics en text

Y'en a une autre ?
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2006, 11h02   #5
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Citation:
Envoyé par Xunil
Ton exemple, je le trouve vraiment pas mal, j'aurais jamais pensé à faire comme ça.
Merci
Citation:
Envoyé par Xunil
Sur tes tables innodb, tu te sers de clefs étrangères ?
Tout à fait.

Citation:
Envoyé par Xunil
Par contre, j'ai pas bien compris pour ce qui est des vues, j'en ai encore jamais fait, je vais regardé ça de plus près, merci
Une vue permet en fait d'enregistrer une sélection et de travailler dessus comme si il s'agissait d'une table. Vous trouverez des informations pratiques sur les vues dans la documentations officielles :
21. Vues
21.1. Syntaxe ALTER VIEW
21.2. Syntaxe de CREATE VIEW
21.3. Syntaxe DROP VIEW
21.4. Syntaxe SHOW CREATE VIEW

Dans mon livre, je présente, au travers de l'exemple d'un arbre généalogique, le système des vues.

Citation:
Envoyé par Xunil
Une autre question, pour le titre d'un topic, varchar serait pas mal, cependant si l'on veut enregistrer les données déjà formaté pour l'affichage(afin d'économiser des ressources), 255 caractères n'est vraiment pas suffisant
Selon moi c'est amplement suffisant.

Citation:
Envoyé par Xunil
Exemple en enregistrant avec un htmlspecialchars en php, si quelqu'un entre un titre du genre 100 chevrons, le nombre de caractères va être multiplié par 4, donc 400 caractères, donc je vois pas d'autre solution que de définir le titre des topics en text
Non, vous commettez une erreur ! Il ne faut pas stocker dans la base les données au format html ! Surtout pas.

Si vous gérez plusieurs langues stockez vos données au format utf-8. Ensuite juste avant de les afficher, vous utilisez les fonctions php pour les afficher dans le même encodage que votre page Web.

(Au risque de vous renvoyez de nouveau sur mon livre, l'un des chapitres traite des formats de données et présente une méthode (tout en utf-8) qui règle tous ces problèmes très simplement, mais vous trouverez des articles qui présente certaines techniques en ligne.).
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2006, 13h35   #6
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Pourtant je vois souvent sur divers forum que beaucoup de personnes disent d'enregistrer les données formatées pour l'affichage, c'est pour cela que je voulais faire de même, mais si tu me dis que c'est une erreur, je vais faire comme tu me conseilles.

J'ai reçu hier un livre que j'avais commandé(SQL de F. BROUARD & Christian SOUTOU de chez PEARSON), j'ai commencé à le lire, et j'ai pu constater que je suis complètement à la ramasse dans ce langage

Pour ton livre tu peux me donner l'isbn, ou un lien, sur amazone, j'arrive pas à le trouver.

Merci pour tes conseils.
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2006, 09h44   #7
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
Je possède moi-même le livre de F.Brouard de C.Soutou, je l'ai parcouru en diagonale seulement pour l'instant. Mais il ne déroge pas à la qualité habituelles de ses auteurs.

Je te remercie de ta confiance. J'envoie cela en MP dès que j'ai la réponse, la mise en vente (aux libraires) commence mercredi. Il devrait être dans les bacs semaine 48 donc.
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2006, 12h40   #8
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Ok, merci
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h30.


 
 
 
 
Partenaires

Hébergement Web