base de données MYSQL avec champs verticaux

base de données MYSQL avec champs verticaux - SQL/NoSQL - Programmation

Marsh Posté le 28-06-2006 à 19:39:35    

Bonjour, et merci pour votre lecture..  
J'ai donc une base de donnée pour un site de gestion d'annonce. Pour consituter la base de données je me suis inspiré de certain CMS open source. Pour pouvoir ajouter un nombre illimité de type de champs par annonce j'ai une table qui regroupe les type de champs et une autre qui stock la valeur de ces champs en fonction de l'id de l'annonce. Mis a part la gestion des sessions utilisateurs j'ai quasiement fini le back office. Maintenant j'aimerai pouvoir exploiter ces données de maniére la plus optimisée possible pour le front_office.
 
Ma question est donc quelle methode utiliser pour afficher les annonces et permettre des recherches de type WHERE ville = 'nom de la ville' AND code_postale = 'numero' etc etc.
 
Je vois tres bien comment faire ca de maniere la plus optimisé possible quand j'ai une base avec des champs bien determiné comme ville, code postale etc..
 
Actuellement pour afficher la liste des annonces je le fais en 2 requetes : je charge la table listing dans array avec comme attribut $array[$id_del'annonce]['nom_de_champ'] puis je fais une seconde requete sur la base annonce. Puis une simple boucle sur cette base.  
 
Ensuite pour trier avec un 1 arguement je selectionne WHERE listing_libelle like 'la valeur' puis je GROUP BY listing_id_annonce avec liaison vers l'id de la table annonce.
 
Je pense pas que ce soit la bonne methode car je suis assez limité dans ce cas la soit je peux trier soit je peux ordonner et je ne vois pas comment faire les deux en meme temps "trier et ordonner en utilisant un type de champs qui n'a pas été selectionné".
 
Bref je me perd en explication , je pense que l'architecture de la base sera plus parlante.
Donc pour faire simple, comment afficheriez vous la listes des annonces en fontion de critéres de recherche qui dépendent de la table listing. Pour mieux vous repérer voila les 2 liaisons importantes à la compréhension : listing.listing_type = liste_champs.list_ch_id et listing.listing_id_annonce = annonce.an_id

 
http://www.romscorp.com/test/base.gif

Reply

Marsh Posté le 28-06-2006 à 19:39:35   

Reply

Sujets relatifs:

Leave a Replay

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