stever34 Posté 23 Août 2006 Posté 23 Août 2006 Salut après de nombreuse réflexion je vais surement me lancer dans les bases de données au moins pour voir. Mais n'ayant pas de recul j'aimerais avoir vos avis avertis sur le sujet. Au départ je vais pas me retrouver dans le cas de figuere "classique" du catalogue du style affiche le ballon, bleu, a moins de 10 euros lol ca va etre encore plus simple lol ca vas etre des pages dont les variables ne seront pas des données (prix, couleur;...) mais plutot des bloc de texte (d'un autre coté ca change rien au ploblème). L'idée est donc d'avoir un page qui affiche différents bloc de texte. Du style présentation de ma home page perso lol avec accueil, présentation, contact... Comment dois je m'y prendre au niveau de la structure de ma base de données Je crée une seule table car toutes les pages sont sur le meme principe y a que le corps du texte qui change dans le colonnes je met quelques variables (IDpage,titre, texte, images) et chaque ligne represente une page du style enregistrement 1 correspond a la page accueil 2eme ligne page présentation 3eme page contact Ou au contraire faut fair une table par type de page une table accueil, une table presentation, une table contact... J'aimerais avoir vos avis sur l'organisation des tables car je pense que c'est plus simple quand on a un peut de recul. merci a tous
Portekoi Posté 23 Août 2006 Posté 23 Août 2006 Bonjour, Tu peux faire ainsi : Table 'texte' : ID / Titre / Texte / Date / ID_Categorie Table 'Categorie' : ID / Nom Dans la table texte : Tous tes textes (un par enregistrement) avec un ID_Categorie correspondant à ci-dessous Dans la table catégorie : 1 - Accueil / 2 - Présentation Et dans ta page php 'Accueil' par exemple : Select a.* from texte a inner join categorie b on a.ID_categorie = b.ID where b.nom = 'accueil' Ci-dessus, le 'a' et le 'b' sont des alias de tables. C'est à dire que je les renome le temps de la requete. Si je n'avais pas fait cela, voici la requête : Select texte.* from texte inner join categorie on texte.ID_categorie = categorie.ID where categorie.nom = 'accueil' Ce qui est un peu plus long. Bon courage Portekoi
stever34 Posté 23 Août 2006 Auteur Posté 23 Août 2006 Si tous mes textes sont dans la meme table imaginons que mon site grossisse et qu'ils soit beaucoup visiter. Je passe toujours d'une extreme a l'autre pour bien comprendre les impacts des choix si j'ai 200 requette pour consulter 200 pages différentes la BD va t elle suivre ou dans ce cas faut multiplier les tables en gros que toutes les requets porte sur la meme et seule table a t il un impact sur les performences ou autres ? Ou ce qui compte c'est le nombre de requetes et non le fait qu'elles porte sur une seule table ou sur des tables différentes ?
Portekoi Posté 23 Août 2006 Posté 23 Août 2006 Ce qui compte c'est ca strucuture. Lorsque tu requetes, il faut utiliser les index / Clés lors de tes jointures. De plus avoir une table va provoqué une redondance certaine. il vaut donc mieux séparé les données qui risque d'être répétitives sans pour autant tout virer. Ah oui, et pour l'histoire des 200 requêtes, cela dépend de la structure comme dis ci-dessus mais aussi de la configuration serveur.
stever34 Posté 23 Août 2006 Auteur Posté 23 Août 2006 Voila j'ai définit ce que je souhaite faire Une page accueil.php dans la quelle je vais inclure $intro (1 bloc au hazard parmis parmis un certain nombre de bloc texte) $corps (1 bloc au hazard parmis parmis un certain nombre de bloc texte) $fin (1 bloc au hazard parmis parmis un certain nombre de bloc texte) Comme ca j'ai une page accueil aléatoire qui va chercher 3 varaibles au hazard dans ma base de donnée je commence a comprendre l'intéret des BD idem pour presentation.php idem pour contact.... idem pour toutes les autres pages... Et en plus je peux en retour enregistré des info du style bloc intro_accueil affché une fois.... Dans ce cas plus complexe comment structurer la BD
Anonymus Posté 23 Août 2006 Posté 23 Août 2006 Pour une base de données un peu plus complexe, tu as plusieurs méthodes, dont merise : http://www.commentcamarche.net/merise/concintro.php3 Ca peut paraitre complexe, au début, mais ca va tout seul après. Lorsque ca devient 'vraiment très compliqué', ben... tu décomposes en sous ensembles moins complexes. Sinon :: Tu as quelques articles/exemples, ici : http://www.webmaster-hub.com/publication/rubrique17.html Si tu as une question, n'hésites pas
stever34 Posté 24 Août 2006 Auteur Posté 24 Août 2006 (modifié) Merci Concernant Merise pour le moment je suis pas assez familiarisé avec le jargon informatique pour suivre toutes les subtilitées. Petite question, aller un de plus Si je souhaite afficher un bloc texte (intro, corps et bas de page) au hazard 1°) il faut mieux creer un table "intro" et prendre au hazard une ligne de la table creer un table "corps" et prendre au hazard une ligne de la table creer un table "bas d epage" et prendre au hazard une ligne de la table 2°) ou il faut mieux creer un table "texte" avec une colonne "intro", une colonne "corps", une colonne "bas de page" et prendre au hazard une ligne pour "intro" et prendre au hazard une ligne pour "corps" et prendre au hazard une ligne pour "bas de page" (seul prob il faut surement le meme nombre "d'intro" que de "corps" et que de "bas de page". 3°) ou il faut mieux creer un table "texte" avec une colonne "intro", une colonne "corps", une colonne "bas de page" et ne pas enregistrer des varaibles dans "intro", "corps'" et "bas de page" mais plutot des tableaux ou $intro contient X "intro" $corps contient Y "corps" $basdepage contient Z "bas de page" et on prend au hazard une valeur dans chaque tableau. Wouw j'ai le cerveau qui fume Donc pour commencer est ce que les 3 méthodes sont possibles, car n'ayant aucune pratiques, ca se trouve je fais fausse route. Si c'est OK quels sont les avantages et les inconvégniants des différentes méthodes, car je commence a comprendre qu'il y a 50 façons de faire la même choses et que chaque méthode a ses pour et ses contres. Cela est souvant liée à d'autres paramètres (grosseur du site...) mais pour faire un choix faut connaitre des + et les - Et si vous avez bien compris ce que je voulais faire, il existe surement encore une autre méthode plus efficace... Modifié 24 Août 2006 par stever34
captain_torche Posté 24 Août 2006 Posté 24 Août 2006 Personnellement, je ferais une table avec un champ Id, un champ texte, et un champ type, qui contiendrait une des valeurs 'intro', 'corps', 'basdepage'.
Portekoi Posté 24 Août 2006 Posté 24 Août 2006 Stevers34 : je ne dis pas que mon schéma est le meilleur, loin de là mais essai déjà avec ca pour te faire la main. Installe toi EasyPhp, et fais des tests.
stever34 Posté 24 Août 2006 Auteur Posté 24 Août 2006 mais bien sur je veux pas que l'intro1 soit affiché avec corps1 et avec basdepage1 les trois partie de la pages doivent être indépendantes
captain_torche Posté 24 Août 2006 Posté 24 Août 2006 Avec le schéma que je t'ai donné, ils sont indépendants. Il te suffit de faire une requête du type SELECT Texte FROM Table WHERE Type = 'intro' ORDER BY RAND() , pour avoir une intro aléatoire.
stever34 Posté 24 Août 2006 Auteur Posté 24 Août 2006 si j'ai 1000 intro et 2 corps de texte j'ai donc 1000 ligne Alors quand je selection un corps de texte il prend au hazard parmis les 1000 lignes d'ou d eforte chances d'être vide ou il est super balaise et il ne prend au hazard que parmis les 2 existantes
Portekoi Posté 24 Août 2006 Posté 24 Août 2006 Quel est ton but? Afficher un texte au hasard? Non? Et bien dans ce cas, à toi de nommer de facon unique tes intros et faire ainsi : SELECT Texte FROM Table WHERE Type = 'intro' and Id = 'Mon_intro1' ou SELECT Texte FROM Table WHERE Type = 'intro' and Id = 'Mon_intro2' Ou encore mieux, tu mets une relation entre tes intros et tes corps de texte.... Cherche un peu par toi même! Tu verras, tu apprendras bien plus vite en commettant des erreurs...
captain_torche Posté 24 Août 2006 Posté 24 Août 2006 Non, si tu as 1000 intros et 2 corps de texte, avec le format que je t'ai proposé, tu as ... 1002 lignes. Et comme les textes sont les seuls à être associés au type 'corps', il suffit de limiter ta recherche à ce type.
stever34 Posté 24 Août 2006 Auteur Posté 24 Août 2006 derniere question apres je me lance dans un peu de programmation et decouvrir par des cas concret. Mais avant j'aimaerais avoir votre avis et critiques constructives sur les différentes méthode 1°), 2°), 3°) + méthode Portekoi + méthode captain_torche Fort de ces explications et soulagé de toutes ces question je me lancerai en toute connaissance de cause ??? wroum wroum
captain_torche Posté 24 Août 2006 Posté 24 Août 2006 La méthode (dans les derniers messages) est identique. La seule différence est que ma requête va chercher un enregistrement au hasard, alors que celle de Portekoi va en chercher un précis (quand on connait son Id).
stever34 Posté 24 Août 2006 Auteur Posté 24 Août 2006 je voulais aussi parler de mes pseudo méthodes. Savoir en quoi et pourquoi elles sont pas bonnes pour bien comprendre mes fausses pistes.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant