Bonjour,
comme je vous l'ai déjà signalé, nous travaillons actuellement sur une
modification de SPIP pour qu'il devienne indépendant de la base de
données utilisée.
Pour cela, nous allons utiliser PEAR DB (http://pear.php.net) pour
tous les accès, mais cela ne suffit pas, il faut aussi transformer les
requêtes pour qu'elles soient compatibles avec les SGBD standards.
Nous prévoyons de rendre SPIP compatible au moins avec les SGBD
suivants :
- MySQL 3.23.x
- PostgreSQL 6.5.x
- Oracle 8.x
- SQL Server 7.x
Une base de travail est fournie par MySQL :
http://www.mysql.com/information/crash-me.php
Pour cela, nous devons tout d'abord modifier le schéma de la base pour
qu'il n'utilise que des types de données standards, selon la norme
ANSI SQL92 supportée par ces SGBD. C'est aussi l'occasion de
rationnaliser un peu les types de données utilisés jusqu'à présent un
peu à tord et à travers.
Quelques questions en vrac pour commencer cette réflexion :
- pourquoi le champ 'fichier' de la table 'spip_forum_cache', par
exemple, est-il en format BINARY ?
- pourquoi utiliser des BIGINT plutôt que de "simples" INT pour les id
d'article ?
- pourquoi utiliser parfois un TIMESTAMP et parfois un DATETIME ?
- pourquoi mélanger les types BLOB, LONGBLOB, MEDIUMTEXT, TEXT, etc au
lieu d'utiliser uniquement des TEXT et VARCHAR ?
Par exemple, il faudrait faire de meilleurs choix entre les types
LONGBLOB, TEXT, TINYTEXT, MEDIUMTEXT et VARCHAR ...
De même, il faudrait rationnaliser les TIMESTAMP et DATETIME,
éventuellement en les remplaçant par des INT avec un "vrai" timestamp
géré en PHP.
Nous préparons actuellement un tableau Excel permettant de voir
quelles fonctionnalitées et quels types de données sont standards et
pourraient être utilisés. Si quelqu'un veut y jeter un oeil, je peux
lui envoyer.
Cette grosse réflexion (que nous devons mener très très rapidement)
nous amènera à déterminer un nouveau modèle de données et les
modifications à effectuer en conséquence sur le code de SPIP.
Merci d'avance pour vos idées que j'espère nombreuses.
-Nicolas