Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Romain14 le le 11-12-2011 a 20:04:43

Titre: Organisation de base de données ?!
Posté par: Romain14 le le 11-12-2011 a 20:04:43

Bonjour à tous,

Donc voilà j'aimerai connaitre votre avis sur ma façon d'organiser ma base de données ! Le site est un réseau social :

id_Fonction : C'est l'id de l'utilisateur + le nom de la table

id_Fonction Information du contenu
(Table) (Contenu de la table)
------------------------|-------------------------------------------------------------------------------
1628_Profile | id, nom, prénom, mail, pass, sexe, date de naissance
1628_Mur | id, message, proprio, date, j'aime
1628_Amis | id, nom, prenom, mail
1628_Parametre | ....
1628_Email | id, message, proprio, objet, fichier-joint, date
1628_Chat | id, message, proprio, date
1628_Images | id, adresse, date, photo de profile ?
1628_Application | id, date


Ce qui me fais peur c'est que chaque utilisateur possédera environ 10 tables, donc si le site possède 1000 internaute ça nous fais 10000 tables ! Es ce que c'est une bonne idée de faire ça comme ça ou pas ? Es que une BDD possédant plusieurs dizaines de milliers de tables peux poser des problèmes techniques, ou de lenteur ? Ou bout de combien de tables environ la base de données risque de planter ? Mon site seras surement hébergeur par www.1hebergement.com (2eme meilleur hébergeur du monde) donc avec un suport de traitement et de travail performant !

Si cette technique risque de causé des problèmes, dites le moi svp, et comment le résoudre.

Voilà j’espère que c'est assez clair, et en passant j'aimerai savoir si il est possible de créer une sous-table (si vous voyer ce que je veux dire) ?

Merci pour tout vos commentaire !

Titre: Re:Organisation de base de données ?!
Posté par: MarvinLeRouge le le 13-12-2011 a 23:47:25

Salut,

je ne comprends pas pourquoi tu as une table profile par utilisateur ? pourquoi pas une table profile tout court ?
Même type de remarque pour amis : pourquoi id, nom, prénom, mail, alors qu'il suffit d'avoir une table des associations d'id entre le demandeur et le demandé ?

Titre: Re:Organisation de base de données ?!
Posté par: Romain14 le le 15-12-2011 a 06:53:33

Donc tu me suggère de mettre une seul table Profile et faire des jointures d'id avec la table amis.

Je sais que c'est pas le "top" comme organisation, mais crois tu qu'il est possible qu'au bout de 10 000 tables, la base de données se sature ou ralentit le serveur ?

J'ai organisé la BDD comme ça pour, traité les scripts PHP plus facilement. J'ai énormément d'infos a stocker sur les utilisateurs donc, je pense que mettre autant de tables est assez convenable sauf si ça perturbe le serveur !

Merci pour ta réponse ;D

Titre: Re:Organisation de base de données ?!
Posté par: MarvinLeRouge le le 16-12-2011 a 15:17:34

A mon avis, ça risque très vite de ramer. Je verrais plus un truc du genre :
- une table membres avec les propriétés le définissant : id, nom, prénom, date de naissance ...
- une table amis qui serait une pure table de jointure entre membres ... et membres : id_demandeur, id_demandé, statut (accepté, rejeté, en attente ...), date de la demande

et après des tables par ensemble de propriétés: chat, application, autre MAIS pas une table par user : dans la table application tu stockes toutes les données concernant les associations user / application, et tu fais des jointures.

Après, rien ne t'empêche de faire des vues pour l'aspect pratique, ou de stocker certaines infos sous forme encodée (du json par exemple).

Mais pour tes histoires de performances, je pense surtout que tu dois chercher à bien gérer les caches : cache html des blocs tant qu'ils ne sont pas modifiés, typiquement "liste des amis", cache des images, css et js ...

Titre: Re:Organisation de base de données ?!
Posté par: Romain14 le le 16-12-2011 a 15:35:27

Merci beaucoup pour ta réponse, je vais suivre tes conseils à la lettre.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.