Tester la présence d'une table dans une BDD [PHP] - PHP - Programmation
Marsh Posté le 16-04-2006 à 20:01:51
http://www.google.fr/search?q=mysq [...] r:official
>> http://builder.com.com/5100-6371-1045433.html
>> fnTableExists()
The fnTableExists() function determines whether a particular table exists within a specified database on your MySQL server. Again, you need to have a server name, user name and password.
Citation : function fnTableExists($TableName) { |
Marsh Posté le 16-04-2006 à 20:15:27
T'as pas un problème de logique là ? Une table par utilisateur ?? Faut UNE table pour tous tes utilisateurs
Marsh Posté le 16-04-2006 à 20:48:53
gooopil a écrit : T'as pas un problème de logique là ? Une table par utilisateur ?? Faut UNE table pour tous tes utilisateurs |
1 membre peut comptabiliser jusqu'à 50 entrées en moyenne dans sa table par an.
J'ai à l'heure actuelle 400 membres et 10 membres de plus par jour.
Si je met tout dans 1 seule table ça risque d'être le bordel et en plus beacoup de calculs sont effectués sur ces tables et ça risquerait de ralentir plus qu'autre chose je pense.
Marsh Posté le 16-04-2006 à 20:57:44
channot77 a écrit : 1 membre peut comptabiliser jusqu'à 50 entrées en moyenne dans sa table par an. |
Enfin justement une base de données c'est quand même fait pour stocker pas mal de données...pis 50entrées/an c'est pas excessif...c'est rien !
Une table par utilisateur c'est la première fois que je rencontre ça...mais peut être j'ai pas compris l'interet.
Tu as pas peur que ce soit plus le bordel en mettant une table par membre ?
Marsh Posté le 16-04-2006 à 20:59:26
50*400 = 20.000
Bon ça va t'as encore de la marge avant d'avoir des soucis avec ta taille de ta table, quand t'aurais plusieurs millions de lignes ça sera peut être plus discutable
Marsh Posté le 16-04-2006 à 21:00:17
Enfin je ne sais pas.
Faut-il mieux avoir 400 tables et de ne traiter qu'1 seule table à 50 entrées
ou avoir 1 seule table et traiter 50 entrées parmis 400x50 entrées?
Moi j'ai fait ça pour que les opérations se fassent plus rapidement mais peut-être que je me trompe.
Marsh Posté le 16-04-2006 à 21:03:40
FlorentP a écrit : 50*400 = 20.000 |
+1
channot77 a écrit : Enfin je ne sais pas. |
400 tables c'est vraiment le bordel quand même...C'est quoi tes opérations dessus ?
Marsh Posté le 16-04-2006 à 21:08:13
channot77 a écrit : Enfin je ne sais pas. |
C'est mieux une seule table.
T'ajoutes une colonne pour identifier le client associé à chaque entrée (colonne que tu ajoute à ta primary key), et c'est bon au niveau perf
Marsh Posté le 16-04-2006 à 21:13:36
C'est sûr que ça résoudrait mon problème.
J'avais fait ça au début mais c vrai que maintenant avec 400 membres ca commence à faire beaucoup de tables.
Jvai y penser.
Au niveau des index dans les tables vous pourriez m'expliquer vite fait le principe?
Merci
Marsh Posté le 16-04-2006 à 21:23:37
La table permet d'enregistrer le palmarès d'un joueur de tennis.
Les champs sont : ID Type Lieu Date Resultat Points Defaite Adversaire Licence Classement IDClass Score etc...
Marsh Posté le 16-04-2006 à 21:26:35
A priori t'as une primary key sur uniquement "ID" donc ?
Là tu rajoute un champs "IDinscrit" et tu étend ta primary key sur deux champs au lieu d'un seul, pour avoir "IDinscri,ID" comme clé
Marsh Posté le 16-04-2006 à 22:54:29
FlorentP a écrit : http://www.google.fr/search?q=mysq [...] r:official |
Sous mysql, y a beaucoup plus simple, tu fais un bête
Code :
|
Marsh Posté le 17-04-2006 à 10:26:36
channot77 a écrit : La table permet d'enregistrer le palmarès d'un joueur de tennis. |
a vue de nez, ta BDD est très mal construite.
Marsh Posté le 17-04-2006 à 20:40:45
J'ai mis une primary key sur mon champs "membre" mais apparemment ça m'empeche de rentrer plusieurs lignes avec le même membre.
J'en rentre 1 mais apres il ne veut plus que je rentre de nouvelle lignes pour ce membre.
Faut-il paramétré qqchose ou est-ce normal? Que dois-je utiliser comme index dans mon cas?
Marsh Posté le 17-04-2006 à 20:44:07
channot77 a écrit : J'ai mis une primary key sur mon champs "membre" mais apparemment ça m'empeche de rentrer plusieurs lignes avec le même membre. |
C'est l'interet de la primary key...
Marsh Posté le 16-04-2006 à 19:35:57
Bonjour,
Je possède un site sur lequel des internautes peuvent s'inscrire.
En bref, lors de l'inscription je crée automatiquement une table qui contiendra les infos sur l'internaute : j'utilise mysql_query("CREATE TABLE ...
Petit problème : quelquefois la table n'est pas créer et je ne sais pas pourquoi.
Pourriez-vous m'aider à résoudre mon problème?
Seconde solution : Connaissez-vous une commande permettant de tester la présence d'une table? Je n'aurais qu'à tester la présence de la table et si elle n'a pa été créer je répète mon script ou j'affiche un message d'erreur pour que l'internaute recommence l'inscription.
Merci de m'aider.
Message édité par channot77 le 16-04-2006 à 19:58:12