laubro
Messages postés186Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention 9 juillet 2013
-
22 nov. 2005 à 09:32
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
22 nov. 2005 à 17:19
Bonjour,
Une question, raisonnablement, combien de tables par base ne faudrait il pas dépasser pour un fonctionnement correct ?, y a t'il dailleur une limite ?, sachant que je peux en mettre de façon illimité sur le serveur en ligne de mon prestataire
"ce que je me dit c'est que chaque table étant "independante....", il n'empeche que si une base est trop sollicité, ça peut être genant peut être ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 22 nov. 2005 à 09:49
Hello,
ce n'est pas vraiment une question de nombre de tables...quelle que soit la base de données utilisée, ce qui prime, c'est une bonne structure, bien réflêchie. Ceci amène généralement des requêtes simples et allant au plus court pour extraire les informations importantes. Il faut quand même veiller à effectuer les bonnes requêtes : ne pas remonter 20 champs différents sur 6 tables, quand on peut faire la même chose sur 3 tables avec 4 champs...
Bref : une bonne structure (vraiment, c'est le plus important), de bonnes requêtes...et tu peux t'amuser avec 200 tables et 3 000 000 d'enregistrements, ça tiendra (sauf peut-être sous Acces...).
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 22 nov. 2005 à 12:46
Salut,
pour ce qui est des petites tables je ne suis pas entièrement d'accord.
Il y a de nombreux cas où il vaut mieux séparer une grosse table en
deux plus petites, mais bon je pense qu'on se comprend de toute façon.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 22 nov. 2005 à 13:04
J'ai rien dit sur les petites tables...lol. J'ai parlé de requêtes uniquement.
Si tu as les tables A, B, C, D, E, F
et que tu peux récupérer tes infos en passant par A, C et F
uniquement...c'est préférable plutôt que de passer par les 6 tables.
Uniquement en terme de requête : les 6 tables existent de toutes façons
dans ta base.
Je précisais parce que je le vois souvent : des requêtes immenses, avec
de multiples jointures, avec trop de champs remontés, alors qu'on a
besoin de moins de champs et que l'on peut récupérer ces champs en
interrogeant uniquement sur 3 tables. C'est une question de
connaissance du modèle utilisé, évidemment, et de compréhension,
évidemment, du fonctionnement d'une bdd. Mais crois-moi, en
environnement pro, tu vois des trucs délirants très souvent...;-)
Et pour continuer : il est en effet souvent préférable d'avoir
plusieurs petites tables, plutôt qu'une grosse. Mais ça dépend en fait
essentiellement des données dont tu auras besoin...et en quelle
quantité, et à quelle fréquence. Tout est question d'équilibre.
Par exemple, typiquement, tu as une table "entreprises".
Tu auras le nom, l'id, le domaine d'application, l'adresse téléphone,
etc..et ce que tu sors régulièrement parce que tu as un annuaire fait
ainsi, c'est le nom, et le domaine.
Bah tu peux créer une table entreprise, et une table entreprise_details
avec le reste des infos (que l'on obtiendra après avoir sélectionné une
entreprise dans la liste de toutes les entreprises, liste triée par
domaine). Parce que tu récupèreras souvent les noms, peu souvent les
détails complets. Mais bon ça reste un exemple, pas vrai dans tous les
cas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
laubro
Messages postés186Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention 9 juillet 2013 22 nov. 2005 à 14:05
Merci pour ces infos
en gros j'utilise pour 1 entreprise 9 tables (reservation en ligne de chambres d'hôtel) mais en gros je requete 1 table / 1 tables, au maximum j'interroge 2 tables sur un meme page avec 2 requetes distincts, mais pour un affichage simultané des réponses
en fait je recupère en premier 3/4 infos sur l'hôtels dans la base "hotels" par exemple, que je garde tout au long du processus au travers de "pagex.php?hotel=$hotel&xxxx " voila, ensuite c'est table / table.....donc ça me va
ma question etait en fait, compte tenu que je pourrait avoir un nombre important d'hôtels répertorié dans ma base "hotels", chaque hotel a ensuite ses propre bases au nombre de 9 (prix, dispo, resa, stats...)
donc si j'ai par exemple 100 hotels, j'aurrai une table "hotels" avec 100 enregistrements et ensuite 900 tables ! et donc si j'ai en même temps 25 personnes qui fonct des requetes simultanées........! je reduits donc bien la sollicitation en eyant séparé mes tables 100 x 9 ??
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 22 nov. 2005 à 14:21
Hello,
si les données pour chaque hotel sont importantes...tu devrais fonctionner autrement.
Si les données sont saisies par tes clients, je te conseille même une
base par hotel, et pas une base commune, avec chacun ses tables et
sous-tables...heu...en fait je n'ai pas bien pigé comment tu
fonctionnais je crois, lol ?
Bref généralement, sur de gros volumes, on préfère separer le sbases :
une par client, si c'est le client qui gère évidemment. Sinon, si les
volumes ne sont pas très importants, pourquoi pas une seule base. Mais
dans ce cas, pourquoi 9 tables par client ? Les requêtes se feront sur
la même base, il n'y a que peu de gain, à mon sens. Et ça ne facilite
pas la maintenance de la base...si tu modifies une table (ajout d'un
champ), tu vas devoir en modifier 100, 1 par hotel ?
Note que ça se script, ça...avec une bonne règle de nommage.
Mouais, chais pas, tu connais mieux ton environnement que moi :-)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 22 nov. 2005 à 14:27
> " Si tu as les tables A, B, C, D, E, F
et que tu peux récupérer tes
infos en passant par A, C et F uniquement...c'est préférable plutôt que
de passer par les 6 tables."
bah en faisant une seule requête oui c'est préférable que d'en faire 6 ou alors j'ai pas compris ;-)
> "que je garde tout au long du processus au travers de "pagex.php?hotel=$hotel&xxxx ""
pourquoi tu mets pas ça en session ?
> "donc si j'ai par exemple 100 hotels, j'aurrai une table "hotels" avec 100 enregistrements et ensuite 900 tables !"
900 tables ? mais pourquoi ? tu stockes quoi dedans ?
laubro
Messages postés186Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention 9 juillet 2013 22 nov. 2005 à 14:41
"pourquoi tu mets pas ça en session ?"
en fait la session, je m'en sert pour le processus de réservation client, à chaque connexion au system je lui affect un id session...
"que je garde tout au long du processus au travers de "pagex.php?hotel=$hotel&xxxx ""
en fait le "$hotel" represente l'id de l'hôtel pour le reconnaitre dans les tables, car les 9 table se nommes ; nomdelatable_$id
ainsi pour chercher une dispo il va dans la table "dispo_$id" $id étant l'hôtel que le client a selectionné
Après faire une base pour chaque hotels, c'est sur, mais bon 100 bases...ou plus......
mon interrogation portaie plus sur les capacités de sollicitation d'une base en simultané!
Enfin vous imaginez bien qu'un modul de reservation en ligne c'est un peu "tarabiscotté" comme on dit chez moi, alors je vous passe les détails ! ! !
allez voir et dites moi si c'est fluide, evidamment la demo c'est quand le client à déja retenu un hotel dans un portail et l'$id est 1 dans l'exemple: www.webotel.com
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 22 nov. 2005 à 15:03
"allez voir et dites moi si c'est fluide"
faudrait surtout savoir quelle machine se cache derrière et voir ton code pour qu'on puisse dire que c'est lent ou rapide. Un site sur un pentium 100 qui se charge en 0.5 secondes c'est qu'il est largement mieux codé que le même site (codé différememnt) qui se charge en 0.4 secondes sur un pentium 4.
laubro
Messages postés186Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention 9 juillet 2013 22 nov. 2005 à 15:15
c'est chez nuxit.com
"Tous nos serveurs sont à base de processeurs Intel (Bi-Xeon, Pentium 4, Celeron...) cadencés à très haute fréquence, bénéficiant de la technologie Hyperthreading d'Intel qui permet un rendement maximal des processeurs."
laubro
Messages postés186Date d'inscriptionjeudi 23 décembre 2004StatutMembreDernière intervention 9 juillet 2013 22 nov. 2005 à 15:32
je n'ai pas plus d'infos sur le serveur a prioris, et pas cherché non plus !
je comprends pas bien où tu veux en venir avec les requetes malalam, enfin je suis pas un super pro et il doit y avoir encore des nuances qui m'echappes !
avoir les mêmes tables pour tous, pas possible, surtout pour les dispos, enfin compte tenue de comment j'ai monté mon modul......
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 22 nov. 2005 à 16:03
si c'est possible suffit de t'y prendre autrement ;-)
Je ne peux que confirmer ;-)
Les dispos ? Tu utilises une bdd relationnelle...les relations, ça sert
à ça. Tu auras telle dispo pour tel id...mais pour tel autre id, les
dispos seront différentes.