Tu as raison.
Merci rub.
8-)
Hors ligne
P@t a écrit:
VDigital a écrit:
Laisse moi 24h...
Mais je pense qu'on va indexer (=> convertir le NULL en 0) mais aussi ajouter une colonne...
8-)Hum.... ok!
Mais quelle sera donc cette nouvelle colonne secrète? ;-)
1 Une colonne id sur la table avec des indexes qui vont bien
2 ou bien un couple (type, id) qui remplaxe image_id, cat_id
3 ou bien 2 tables
Perso, je préfère 2 et 3, après ca dpend de l'implémentation.
Pourquoi ne pas rajouter une table qui contient (id, path du sound)?
Ca permettrai d'utiliser le même son sur plusieurs images/catégories
Hors ligne
P@t a écrit:
Mais ca m'explique toujours pas à quoi sert l'indexation....
Permet d'indexer les données de ta table.... lol... pour un accès plus rapide.
Indexer coute lors d'un ajout/delete/update mais améliorer les requêtes si les champs du where sont dans l'indexation.
Trop d'indexes est bien sur trop long... il faut faire un juste milieu.
Généralement, on a un PK (indexe unique + contraintes sur FK) et quelques indexes suivant la structure et l'utilisation de la table.
Ainsi si tu fais select * from toto where id = 1 et machin = truc, l'indexe sur id va booster les perfs.
Bien sur, sur des petites tables, l'amélioration des perfs ne se voit pas mais sur de grosses tables, OUI!
Hors ligne
Lol
dans un autre topic
VDigital a écrit:
P@t a écrit:
- Rajouter une colonne "son" dans les tables images et catégories ou le lien du mp3 sera stocké.
Non, une table annexe ...
.CATEGORIES_IMAGES_SOUND_TABLE.
cat_id / image_id / sound_id
si cat_id est null (son par défaut de l'image toutes catégories confondues).
si image_id est null (son de la catégorie)
si cat_id et image_id NOT NULL (son de l'image dans la catégorie)
.SOUND_TABLE.
id / file / path / volume
PS: P@t, tu n'es pas obligé de mettre "table" dans le nom de la table mais dans les constantes php c'est plus clair.
phpwebgallery_categories_images_sound indexée simplement sur cat_id, image_id
phpwebgallery_sound (avec un s, sounds)
primary index id
8-)
Hors ligne
rub a écrit:
1 Une colonne id sur la table avec des indexes qui vont bien
2 ou bien un couple (type, id) qui remplaxe image_id, cat_id
3 ou bien 2 tables
Perso, je préfère 2 et 3, après ca dpend de l'implémentation.
Pourquoi ne pas rajouter une table qui contient (id, path du sound)?
Ca permettrai d'utiliser le même son sur plusieurs images/catégories
Pour les 2 tables, j'étais parti de la... et je me suis rendu compte que ca n'allait pas servir à grand chose.
On peut utiliser un son pour autant de catégories/images que l'on veut avec une seule table.
Après, je veux bien rajouter une colone id, mais je ne vois pas à quoi elle va servir? (j'y avais aussi pensé...)
Hors ligne
VDigital a écrit:
PS: P@t, tu n'es pas obligé de mettre "table" dans le nom de la table mais dans les constantes php c'est plus clair.
phpwebgallery_categories_images_sound indexée simplement sur cat_id, image_id
phpwebgallery_sound (avec un s, sounds)
primary index id
8-)
Je trouvais que phpwebgallery_wfs_sound_table, ca en jetait! :-))) (prononcé à l'américaine, of course...)
Bon, j'y penserai pour la prochaine fois, maintenant qu'une premiere version a dejà été publiée...
J'ai rajouté 2 index pour image_id et cat_id...
Mais je suis encore assez rétissant à créer une deuxième table...
Cela veut dire que sql devra aller chercher sur 2 table pour la lecture d'un son, alors que finalement, en l'état, les requetes sont plutot simple, non? On cherche dans la table l'id de la catégorie ou de l'image et on a directement le chemin du fichier son.
Ca gère meme les images contenues dans plusieurs catégories... on peut avoir pour une meme image un fichier qui se lance quelque soit la catégorie ou on a appelé l'image (le fameux cat_id = NULL) et un fichier qui se lance uniquement si l'image a été appelé depuis une catégorie spécifique. Ce dernier est bien sur prioritaire sur le premier. C'est l'option "Appliquer à l'image uniquement dans cette catégorie"
J'ai fait tous les tests les plus tordus, et ca fonctionne... ;-)
Si un fichier n'existe plus, une requete est lancé pour supprimer toutes les entrées contenant ce fichier.
Simple, efficace ;-)
Dernière modification par P@t (2007-07-23 02:52:58)
Hors ligne
P@t a écrit:
Mais je suis encore assez rétissant à créer une deuxième table...
P@t a écrit:
Cela veut dire que sql devra aller chercher sur 2 table pour la lecture d'un son, alors que finalement, en l'état, les requetes sont plutot simple, non? On cherche dans la table l'id de la catégorie ou de l'image et on a directement le chemin du fichier son.
Avec 2 tables, il suffit de faire une jointure et c'est pareil, une seule requête!
Avec 2 table le problème c'est que tu dupliques le chemin du son, donc ca prend plus de place (même si pour le volume de cette table ca ne devrait pas être important)
P@t a écrit:
Ca gère meme les images contenues dans plusieurs catégories... on peut avoir pour une meme image un fichier qui se lance quelque soit la catégorie ou on a appelé l'image (le fameux cat_id = NULL) et un fichier qui se lance uniquement si l'image a été appelé depuis une catégorie spécifique. Ce dernier est bien sur prioritaire sur le premier. C'est l'option "Appliquer à l'image uniquement dans cette catégorie"
J'ai fait tous les tests les plus tordus, et ca fonctionne... ;-)
Avec les 2 tables aussi.
Avec une table son à part l'avantage, c'est que tu peux dissocier l'ajout de son (et sa configuration pourquoi pas) et l'association.
P@t a écrit:
Si un fichier n'existe plus, une requete est lancé pour supprimer toutes les entrées contenant ce fichier.
Perso, que ca soit avec une table ou 2, je ferais ce type de test uniquement dans la partie admin.
Si c'était moi, je ferais les tables suivantes:
sound (id, file, volume)
associate (sound_id, type, type_id)
Hors ligne
Les bonnes pratiques doivent être ou connues ou prises dès le début...
La jointure est un exercice simple et fréquent avec les bases de données (il ne faut pas pour autant en abuser).
Dans notre cas, rub a bien dit "une jointure et c'est pareil, une seule requête!", pas de souci (pourtant j'addooore les...).
P@t a écrit:
On peut utiliser un son pour autant de catégories/images que l'on veut avec une seule table.
Sans problème (avec la jointure) le son n°3 peut être associé (wired) à 2 catégories et à 19 images même dans d'autres catégories.
8-)
Hors ligne
Les jointures simples sont tres, tres courantes... Les multiples aussi mais il faut pas en abuser comme le dit VDigital...
Hors ligne
Arf.... je sais que vous avez raison.... mais la j'ai vraiment pas le courage de tout modifier pour faire 2 tables....
Ca fonctionne très bien comme ca. Et puis ce plugins n'a pas vocation à intégrer 350 mp3 sur 1682 catégorie/images. C'est juste histoire de rajouter quelques fioritures à une galerie.... je reste donc sur une table!
Promis, dans un prochain plugin, je suivrai vos conseil...
Pour ce qui est de la suppression automatique si un fichier n'existe pas, je le ferai dans une prochaine version sur la page d'admin... J'avais dans l'idée de créer un bouton "maintenance". J'avais aussi dans l'idée de faire 2 onglets pour lister les catégories et les images associées à un son.
En attendant, je vais me pencher sur le problème des pages spéciales....
Et peut etre meme essayer de les sonoriser aussi....
PS: Le saviez vous? "Wired For Sound" signifie exactement "sonorisé"....
Hors ligne
P@t a écrit:
Arf.... je sais que vous avez raison.... mais la j'ai vraiment pas le courage de tout modifier pour faire 2 tables....
Tu devrais en avoir! ;-)
Car à mon avis, ce plugin va être dans le move.
C'est sympa comme idée et beaucoup de personnes vont avoir l'envie de rajouter du son dans leur galerie.
Tu risques d'avoir beaucoup de demandes d'évolutions.
Alors, s'il y a bien un moment ou il faut le faire c'est maintenant. Non?
D'ailleurs, par la suite, je pense que ce plugin pourrait faire partie de la version de base de pwg (vu sa fonctionnalité)
Idem pour les 2 plugins de videos, une version mergée des 2 de base dans pwg serait un plus, à mon avis.
P@t a écrit:
PS: Le saviez vous? "Wired For Sound" signifie exactement "sonorisé"....
Non, je ne savais pas... on en apprend tout les jours...
Et avec ce niveau en anglais, tu ne fais pas les traductions en anglais? mdr!
Hors ligne
Ok ok ok... je vais essayer de le faire... mais bon, la je bosse quand meme un peu cette semaine, je vais essayer de trouver le temps...
rub a écrit:
P@t a écrit:
PS: Le saviez vous? "Wired For Sound" signifie exactement "sonorisé"....
Non, je ne savais pas... on en apprend tout les jours...
Et avec ce niveau en anglais, tu ne fais pas les traductions en anglais? mdr!
Tu parles! j'ai cherché sur un traducteur "sonorisé" et je suis tombé sur Wired For Sound... et vu que ca en jette, j'ai adopté!
Dernière modification par P@t (2007-07-23 11:12:19)
Hors ligne
Et ça a son bac ... ?!
Hors ligne
salut
j'ai installé "Wired For Sound" c'est sûr que c'est une bonne idée ! cela rend plus vivant mon album !
un défaut qui est un peu embêtant , une musique associé à une catégorie de la gallery qui possède plusieurs pages reprend le morceau dépuis le début à chaque pages tourmée , c'est dommage de ne pas avoir la continuité du morceau ! peut-être l'idée de créer plutot un fond sonore à catégorie de la gallery, je ne sais pas si c'est possible ?
en tout cas bravo et merci pour tout ce vous faites et bon courage et continuation !
Hors ligne