begin process at 2012 05 29 02:05:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Conseil structuration bdd


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Conseil structuration bdd

mardi 17 mars 2009 à 21:17:24 | Conseil structuration bdd

laubro


Bonjour

voilà, je developpe un portail de reservation hotelière et comme souvent il va me falloir developper un moteur de recherche, j'en ai deja créé des sites de ce type, sauf que là, je vais vais avoir une particularité un peu plus complexe: les caracteristiques (piscine, spa, tennis...., vue mer...piste de sky...bord de mer) et en fait cette partie de criteres de recherches vont être en grand nombre à mon gout et voir evolutif, donc je vais avoir une table options où l'administrateur devra pouvir ajouter/retirer des options, qui seront proposées à l'hotelier dans son interface admin de son hotel

je me demande quelle seriat la meilleur solution, car si dans ma table hotel je devais mettre toutes les option possibles et chercher en where je risque d'avoir une big table

alors dans le cas ou je ferais une table hotel :
- id_hotel
- nom
- ville
- etc...

et une table options
- id_option
- nom option
- rubrique (genre environnement, equiepements, services..)
- type (raio/checkbox = pour formater le form dynamiquement)

a partire de là, je formate un formulaire de choix pour l'hotelier avec des cases à cocher/bouton radios....

comment feriez vous pour la recherche en fonction des criteres

une tables options_hotels (aliementées via le formulaire de gestion de l'hoteleier) ???

- id
- id_option
-id_hotel
- oui/non

et dans ce cas, lors du lancement de la recherche quel requete lancer ?
select * from hotel.............................where ville='$ville'
est ce qu'un INNER JOINT serait efficace ? mais je maitrise moyen cette fonction
ex :
foreach($options as $option)
{
$requete .= " INNER JOIN options_hotel  ON (hotels.id_hotel=options_hotems.id_hotel) ";
}

la je bloque, faudrais ajouter une comparaison du style : and options_hotels.nom='$option' entre les parantheses mais je suis pas sur que ça fonctionne...

j'espere que vous voyez ma problematique

merci de votre aide




Laubro
mardi 17 mars 2009 à 21:21:51 | Re : Conseil structuration bdd

laubro


excusez pour les fautes de frappes, petit soucis de clavier
Laubro
mercredi 18 mars 2009 à 06:27:57 | Re : Conseil structuration bdd

coucou747

Administrateur CodeS-SourceS
salut

tu peux tenter un truc comme ca :

select * from hotel.............................where ville='$ville'
AND option IN (SELECT id_option FROM options WHERE id_hotel = hotel.id AND option = "oui")
mercredi 18 mars 2009 à 08:42:00 | Re : Conseil structuration bdd

TychoBrahe

Salut,

Faire une table options_hotels qui met en relation les tables hotel et options me semble une bonne idée. Après, au lieux de faire un champ oui/non qui sous entends que pour chaque hôtel tu stocke toutes les options possibles, tu peux te contenter de ne lister que les options dont un hôtel dispose. Et en effet, pour aller chercher les valeurs que tu souhaite l'utilisation d'un INNER JOIN est efficace.

Si tu veux de petits exemples de requette avec ce système :
 - liste les option d'un hotel
SELECT options.nom_option, options.rubrique FROM options_hotels INNER JOIN options ON options_hotels.id_option = options.id_option WHERE options_hotels.id_hotel = id_de_l'hotel;
 - sélection des hotels dont une option est activée
SELECT hotel.nom FROM (options INNER JOIN options_hotels ON options.id_option = options_hotels.id_option) INNER JOIN hotel ON hotel.id_hotel = options_hotels.id_hotel WHERE options.id_option = id_de_l_option_recherchee;


Cette discussion est classée dans : table, id, option, options, hotel


Répondre à ce message

Sujets en rapport avec ce message

problème de mise à jour de base de données [ par rildspael ] Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc Sélectionner les lignes différentes entre deux tables [ par Mikemadest ] Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution Afficher une ligne d'une table mysql [ par Alferox ] Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de [MySQL] Sauvegarde d'un tableau dans une table [ par cedvoyage ] Bonjour,J'aimerais sauvegarder un tableau (multimensionnel) dans ma base MySQL.Or quand j'essaye je n'ai que 'Array' de marquer dans le champ de ma ta selectionner une id dans une base de données [ par tomatokatchup ] Voila mon probleme :J'ai créer une table qui se contient les réultats d'un formulaire remplis par les visiteurs de mon site. A chaque validation du fo requete balaise [ par eax ] salutg un pb avec une requete mysql qui affiche les champs d'une table A (table des photos) et d'une table B (table des comentaires), je veux afficher pb d'affichage de table [ par nikos283 ] Bonjour, J'ai un probleme pour afficher une table, tout dabord voici les tables:annuaire(id_annuaire, nom_annuaire)centres(id_centres,nom_centres)serv debutant probleme de session! [ par jimmy69 ] bonjour a tous,voila je debute en php et je suis en train de realiser un espace menbresou ceux ci peuvent poster des news un truc tout simple!j'ai don CREATE TABLE images ????? [ par spike911 ] Je c'est ce surment un question newbie mais c'est pas grave je me lancer P"S je ne connais pas tres bien le PHPQuoi sa veu dire sa:CREATE TABLE images Trier une table avec le contenu d'une variable [ par bullo95 ] Bonjour!! Voila mon probleme premiere page, un petit moteur de recherche par mots clefs. qui va a la page 2 page 2 la liste de tt les article compten


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales