Optimisation structure de base

[Résolu]
Signaler
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Bonjour

Je suis de construire une base de données pour un futre site et je souahite qu'elle soit bien structurée dès le départ. Normal.

J'ai besoin de vos avis et idées

Alors voila J'ai une table Adresse dans laquelle je vais tockées des informations sur des adresse
Et je voudrais stocker les horaires de manière à faire des recherche pour chaque jour de la semaine

Par exemple ( nous sommes mercredi ), je cherche une adresse ouverte "aujourd'hui" et "maintenant " ( heure à laquelle je fais ma recherche ) dans tel arrondissement

La requete va donc checker en base toutes les adresses qui sont ouvertes mercredi et dont mon heure et comprises entre l'horaire de début et horaire de fin pour ce mem jour

Que pensez vous
Je fais une table horaire comme ceci

ADRESSE_ID int 
HORAIRE_LUN_DEB datetime 
HORAIRE_LUN_FIN datetime 
HORAIRE_MAR_DEB datetime 
HORAIRE_MAR_FIN datetime 
HORAIRE_MER_DEB datetime 
HORAIRE_MER_FIN datetime 
HORAIRE_JEU_DEB datetime 
HORAIRE_JEU_FIN datetime 
HORAIRE_VEN_DEB datetime 
HORAIRE_VEN_FIN datetime 
HORAIRE_SAM_DEB datetime 
HORAIRE_SAM_FIN datetime 
HORAIRE_DIM_DEB datetime 
HORAIRE_DIM_FIN datetime 

Perso je trouve ca un peu lourd, mais je vois pas trop comment faire autrement
Sinon je peux aussi creer un table horaire pour chaque jour de la semaine
Qu'en pensez vous ?

Merci d'avance

5 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
Exemple

sur 4 colonnes
10:00 | lundi |debut | adresse1
18:00 | lundi | fin | adresse1

sur 4 colonnes
10:00 | 18:00 | lundi | adresse1

je me suis trompé dans mes calculs
La solution 1 permet des journée fractionnée
exemple pause le midi
ce que ne permet pas la solution 2

A toi de gerer la suite
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
Salut

Perso je verrai plutot
une table horaire avec 4 colonnes
horaire datetime
jour int(dans le code enum)
debut/fin int (dans le code enum)
adresse_id

ou

une table horaire avec 5 colonnes

horaire_debut  datetime
horaire_fin datetime

jour int(dans le code enum)

adresse_id

Qui est peut etre plus facile a géré
La structure est en fonction des requetes que tu pense faire dessus

Il faut un peu reflechir au besoin, pour eviter de mauvaises surprises

Donc si j'imagine ta table
tu n'as qu'une seule ligne.par adresse

dans la structure que je presente tu auras 14 lignes par adresse

Et tu pouras faire des requetes plus ebarorée

choses qui n'est pas possible aujourd'hui

Bon courage
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

Merci pour ton idée, seulement cela ne va t-il pas chargée ma base, la rendre plus lourde .... lorsque j'aurais 10 000 adresses ?

Pour moi les requetes doivent etre le plus précis possible
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
Les requetes doivent etre le plus facile possible à utiliser

Donc si tu es sur que cela n'evolue pas ta solution peut etre la bonne.
 
Si tu as 10000 adresses cela ne pose pas de probleme

Apres c'est a toi de voir
Mais il ne faut pas faire une table par jour
Messages postés
51
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
6 mars 2008

La table comme ceci me tente bien
une table horaire avec 5 colonnes
horaire_debut  datetime
horaire_fin datetime
jour int(dans le code enum)
adresse_id

Qu'entend tu par cette table
table horaire avec 4 colonnes
horaire datetime -------------------> cette quoi cet horaire
jour int(dans le code enum)
debut/fin int (dans le code enum)
adresse_id