[SPIP Zone] MySQL : varchar(255), varchar(1000) ou text ?

Bonjour à tous,

Plusieurs utilisateurs du plugin Mosaique ont fait remonter le besoin d’utiliser une capacité plus importante que varchar(255) pour le champ mosaique qui est utilisé par le plugin. À l’époque il y avait déjà eu un commit pour passer à varchar(1000) puis discussion et revert, la conclusion étant que varchar ne doit pas dépasser 255. Pour mémoire : http://comments.gmane.org/gmane.comp.web.spip.zone.cvs/70076

En fait varchar > 255 est supporté depuis MySQL 5.0.3 (2005) (voir http://dev.mysql.com/doc/refman/5.0/en/char.html) d’où mes quelques questions :

  1. Sachant que le champ en question contient une série d’identifiants d’objets, quel type de champ est selon vous le plus approprié : varchar > 255 ou text ? Quelle différence ?

  2. De façon plus générale, y a-t-il un support minimal de MySQL à assurer pour être « spip-compliant » ? lequel ? Est-ce écrit quelque part (j’ai pas trouvé) ?

Merci d’avance pour ces infos !

Thomas

Le plugin est compatible SPIP 3.x uniquement ?
Si oui, on peut laisser varchar(1000) en soit car SPIP 3.x nécessite MySQL 5. minimum.

Sinon, en logique, on peut passer à text pour sa définition… Ça serait plus « conventionnel » car varchar > 255 est peu rencontré.

Le 2 mars 2015 à 19:50, thom_b <thom.sp@gmx.fr> a écrit :

Bonjour à tous,

Plusieurs utilisateurs du plugin Mosaique ont fait remonter le besoin d’utiliser une capacité plus importante que varchar(255) pour le champ mosaique qui est utilisé par le plugin. À l’époque il y avait déjà eu un commit pour passer à varchar(1000) puis discussion et revert, la conclusion étant que varchar ne doit pas dépasser 255. Pour mémoire : http://comments.gmane.org/gmane.comp.web.spip.zone.cvs/70076

En fait varchar > 255 est supporté depuis MySQL 5.0.3 (2005) (voir http://dev.mysql.com/doc/refman/5.0/en/char.html) d’où mes quelques questions :

  1. Sachant que le champ en question contient une série d’identifiants d’objets, quel type de champ est selon vous le plus approprié : varchar > 255 ou text ? Quelle différence ?

  2. De façon plus générale, y a-t-il un support minimal de MySQL à assurer pour être « spip-compliant » ? lequel ? Est-ce écrit quelque part (j’ai pas trouvé) ?

Merci d’avance pour ces infos !

Thomas


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Hello,

En fait varchar > 255 est supporté depuis MySQL 5.0.3 (2005) (voir http://dev.mysql.com/doc/refman/5.0/en/char.html) d’où mes quelques questions :

C’est aussi la façon de procéder d’Oracle, mais à éviter pour des raisons de portabilité et puis c’est pas dans le standard que je sache.

  1. Sachant que le champ en question contient une série d’identifiants d’objets, quel type de champ est selon vous le plus approprié : varchar > 255 ou text ? Quelle différence ?

Quand supérieur à 255 passer à text (même pas les autres déclinaisons de celui-ci)
Mais en parlant d’identifiants j’ai l’impression que ce sont des liaisons qui nécessitent une table non ?

  1. De façon plus générale, y a-t-il un support minimal de MySQL à assurer pour être « spip-compliant » ? lequel ? Est-ce écrit quelque part (j’ai pas trouvé)

SPIP n’est pas que MySQL ; il tourne aussi avec Posrgres et Sqlite… D’où rester standard (i.e. la norme voir le dénominateur commun dans celle-ci)

Hello,

Oups, mille fois pardon pour ma réponse un peu tardive. Pô eu le temps de m’y remettre depuis…

Merci à tous les deux pour vos réponses pleines de bon sens qui confirment ce que je présentais. J’ai donc passé le champ à « text ».

Mais en parlant d’identifiants j’ai l’impression que ce sont des liaisons qui nécessitent une table non ?

En fait pas exactement, le champ en question contient une liste ordonnée : c’est moins les identifiants que leur ordre qui sont utiles ici.

Merci !

Thomas