Supprimer le parametre id

WRInaute impliqué
Bonjour,

il m'est venu une idée. Actuellement, les différentes catégories de mon site sont reconues gâce à un identifiant. Dans la table mysql correspondant aux catégories, j'ai donc un champs "id" avec auto-increment.

Les urls sont rewritées. on retrouve donc l'id dans l'url. En fait, j'ai peut-être fait l'erreur de sélectionner les catégories en appelant leur id dans les requetes, simplement parce qu'à la création du site, je n'y connaissais pas grand chose et que j'ai pris exemple sur les annuaires qui font globalement comme ça.

La question est la suivante : afin de faire disparaitre les id des urls et n'avoir du coup que des urls "propres", je pense sélectionner les catégories par leur nom et plus par leur id.

Mais je me demande si cela risque de causer des problèmes, conflits, ou autre chose. Je me dis que si on voit si souvent des id dans les urls c'est qu'il y a sans doute une raison.

Maintenant, 2eme question : si je sélectionne les catégories par leur champs "nom" et plus par leur champs "id", ce champs id a-t-il encore une quelconque utilité ? Et du coup, puis-je le supprimer de ma table sans risque ?
 
WRInaute passionné
Salut,

code a dit:
Mais je me demande si cela risque de causer des problèmes, conflits, ou autre chose. Je me dis que si on voit si souvent des id dans les urls c'est qu'il y a sans doute une raison.

La raison ? Le cas d'école, la simplicité.

Je tends de plus en plus à supprimer mes id également quand cela est possible.

code a dit:
Maintenant, 2eme question : si je sélectionne les catégories par leur champs "nom" et plus par leur champs "id", ce champs id a-t-il encore une quelconque utilité ? Et du coup, puis-je le supprimer de ma table sans risque ?

Je réponds oui pour l'utilité en interne, pour tes clefs étrangères, jointures, etc. Revenir à la 1ère réponse : la simplicité de travailler avec un id (numérique si possible).
 
WRInaute passionné
Je viens de mettre en place une parti "produits", et j'ai fait craquer les id :wink:

Attention cependant :
- Chaque nom doit être unique (perso j'ai Marque+modele)
- tes url doivent être propres (pas d'accents, de caractères spéciaux, ...). quand une page est demandée, il faut alors comparer l'url avec les champs de ta base qui tu aura transformé.

Exemple :
-http://www.skitour.fr/matos/skis/dynastar-altitrail-vertical
 
WRInaute impliqué
Seulement en fait j'ai un probleme... Et oui, il fallait bien que ce ne soit pas si simple et je comprends mieux l'utilité de l'id...

Si j'ai une catégorie qui contient 2 mots séparés par un espace exemple : "mot1 mot2", qui correspond à son titre dans le champs "titre" de ma table

Maintenant si je l'appelle avec un url rewriting de la sorte .../mot1mot2.html c'est à dire les mêmes mots mais sans espace,

comment puis-je retrouver ma catégorie dans la table du fait que par comparaison, elle n'aurons du fait pas le meme titre...
 
WRInaute passionné
code a dit:
Maintenant si je l'appelle avec un url rewriting de la sorte .../mot1mot2.html c'est à dire les mêmes mots mais sans espace,

comment puis-je retrouver ma catégorie dans la table du fait que par comparaison, elle n'aurons du fait pas le meme titre...

Tu sélectionne TOUS les titres de ta table, et tu les compare à mot1mot2 aprés les avoir transformés (mot1 mot2 > mot1mot2) :wink:
 
WRInaute passionné
Ah bah là après on peut pas te dire, c'est de la gestion et t'es le mieux placé pour gérer ton site et ta bdd.

Tu peux t'aider à gérer tes repères avec le nom de la page, un caractere spécial (-,_), et des répertoires viruels.

/categorie/marque-reference
 
WRInaute passionné
jeroen a dit:
code a dit:
Maintenant si je l'appelle avec un url rewriting de la sorte .../mot1mot2.html c'est à dire les mêmes mots mais sans espace,

comment puis-je retrouver ma catégorie dans la table du fait que par comparaison, elle n'aurons du fait pas le meme titre...

Tu sélectionne TOUS les titres de ta table, et tu les compare à mot1mot2 aprés les avoir transformés (mot1 mot2 > mot1mot2) :wink:

Oué bah à ce niveau là j'préfère garder les id's :p
 
WRInaute discret
TU ajoute un champ à ta base "VFileName", tu crée une moulinette qui transformera tes titres dans ce nouveau champ.

Ensuite t'a plus qu'a faire mumuse avec un simple SELECT
 
Discussions similaires
Haut