[SQL]chaine de carctères présente dans un colonne

chaine de carctères présente dans un colonne [SQL] - PHP - Programmation

Marsh Posté le 09-07-2003 à 01:38:05    

salut a tous!  :hello:  
 
je vous expose mon probleme:
 
je suis en train de réaliser une encyclopédie sur star wars online, bien sur pas tout seul, mais c'est moi le webmaster.
 
donc je vais utiliser un système de fiches assez complexe...
pour cela je vais utiliser une grande table mysql regroupant toutes les infos. il y aura un champ nom, catégorie, épisode... etc.
le probleme, c'est que chaque fiche appartient à un nombre indéfini de groupes. par exemple luke skywalker va appartenir à un tas de groupe, tandis qu'un simple soldate n'appartiendra qu'au groupe "empire" par exemple.
or: j'aurais aimé faire une colonne "groupe" dans ma table! mais il peut y en avoir plusieurs. j'aurais pu également me dire: chaque fiche aura au plus 3 groupes, et faire 3 colonnes! mais non ca ne va pas... parce que non seulement j'ai un nombre indéfini de groupes, mais en plus, cette colonne "groupes" est destinée à faire la condition d'un select...
par exemple "select toutes les lignes qui ont un groupe alliance rebelle"...
 
 
donc, tout ce baratin pour en venir à la question réelle: :p  
y a-t-il une facon en SQL de selectionner une ligne (ou plusieurs) sous la condition que "une chaine de caractères" soit pésente dans un colonne précise?
 
je pense à faire ça: "select toutes les lignes ou alliance rebelle est présent dans la colonne groupe".
et dans la colonne groupe y aurait par exemple:
"escadron rogue,alliance rebelle,jedis,famille skywalker"
 
est-ce possible???
 
 
OUFFF... j'ai enfin terminé :sweat:  

Reply

Marsh Posté le 09-07-2003 à 01:38:05   

Reply

Marsh Posté le 09-07-2003 à 07:33:08    

c'est possible mais fortement déconseillé
ce qu'il te faut c'est une table d'allocation (je crois qu'on dit comme ca).
pour expliquer, tu auras ta table perso, ta table "appartenances", et une table qui contiendra "qui appartient à quoi".
 
cette table contiendra la clé étrangère de ton perso, ainsi que la clé étrangère de l'appartenance.

Reply

Marsh Posté le 09-07-2003 à 07:59:08    

sinon ca se fait comme ca :
 
select .... where groupes LIKE '%empire%'
 
mais c'est pas performant comme méthode de recherche. Vaut mieux faire un vrai modèle de base de donnée plutot que de tout mettre dans une seule table !
La remarque vaut aussi pour tes autres colonnes (épisode, catégorie ...)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 09-07-2003 à 08:55:33    

+1
Ecoute Benou. Tout mettre dans une seule table, c'est pas utiliser une base de données, c'est ... heu, ben finalement je vais pas le dire ;)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed