Administrateur PHPfrance |
3088 Messages
02 juin 2006, 04:30
Ce que je te conseille plutôt c'est de séparer tous ces nombres et les placer dans une table. Par exemple, au lieu d'avoir (id, nombres) égal à (1, '1,2,3'), tu as une table avec (id) où
id est la clé primaire, et une autre table avec trois enregistrements (id, nombre) (1,1), (1,2) et (1,3) avec un index sur
id et même un second sur
nombre s'il t'arrives régulièrement de faire des requête là dessus.
Avec un tel schéma, toutes les opérations de mise à jour sont simplifiées. Ce procédé s'appelle la normalisation et c'est un principe de base dans le domaine. Et si tu veux supprimer un ou plusieurs "nombre" rien n'est plus simple, par exemple:
En plus, je t'offre pour le même prix la modification de ta requête SELECT ! (sous MySQL) Avant:
après:
Code : Tout sélectionner
SELECT t1.id, GROUP_CONCAT(t2.nombre) AS nombres
FROM table t1
JOIN table_rel t2 ON t2.id = t1.id
WHERE t1.id = 1
GROUP BY t1.id
De cette façon, tu n'as rien à changer dans ton application. (et si tu ne te sers par de la liste de nombre évite de joindre la table pour rien, hein

)