Comment bien gérer sa base de donnée

a marqué ce sujet comme résolu.

Bonjour,

Je suis en train d’essayer d’organiser au mieux ma base de donnée (Pour une fois j’essaye de prévoir à quoi va ressembler ma base de donnée avant de commencer à coder, comme ça je n’aurai pas besoin de recoder 18x le truc :p)

Mais je me pose plusieurs questions, surtout au niveau des performances et de la lisibilité de mes tables.

J’aurai un niveau d’architecture semblage à celui-ci: (Sauf avec bien plus de composant au deuxième niveau)

1
2
3
4
          Projets
        /         \
       /           \ 
Site internet   Logiciel

Et ensuite j’aimerais pouvoir ajouter des informations (post-it) et un un système d’issue (ticket). Mais je ne sais pas si, je dois créer une table post-it et une table issue contenant un champs projet_id ou alors inclure ceci, dans ma table projet. (Et insérer des tableaux sérialisé dans mes champs) ?

Le problème à la première solution selon moi est qu’on va faire plusieurs requête dans la base de donnée peut-être inutile (Une fois pour aller prendre le projet, une fois pour aller récupéré les détails du projet, Dans le cas d’un Site-web selon mon schéma, une fois pour aller chercher les post-it et une fois pour aller chercher mes issues).
Soit 4 requêtes.

Le problème de la solution, est que la table projet contiendrait beaucoup plus de données, et la lisibilité de la table serait bien moins évidente.

Que me conseilleriez-vous ?

Et je voulais savoir, qu’elle est la limite du nombre de donnée que peut contenir une table MySQL, car il y a bien un moment avec un certain nombre de donnée où les requêtes vont commencer à devenir lente non ?

Je vous remercie.

C’est très bien de voir que tu t’intéresses à l’organisation de la base de données. C’est très important. Je te conseille de lire des documents sur Merise ou UML. Je ne connais pas de bons supports donc je ne donnerais pas de lien.

Et je voulais savoir, qu’elle est la limite du nombre de donnée que peut contenir une table MySQL, car il y a bien un moment avec un certain nombre de donnée où les requêtes vont commencer à devenir lente non ?

WinXaito

Il doit bien y en avoir mais ça doit être assez élevé. Je pense qu’il y aussi les ressources de la machine qui peuvent jouer dessus.

Merci, je vais jeter un coup d’oeil à tes liens.

Et j’ai encore une question concernant MySQL, enfin PHP en l’occurence. Est-il possible de récupérer le nombre de requête effectué vers la base de donnée lors de la demande d’une page ? (J’utilise PDO).

Les autres questions de mon premier post sont toujours de mise.
Merci !

Je n’utilise PDO que très rarement. Je préfère préciser que c’est une idée de ma part. Je ne sais pas si cela va répondre à ta question ou même si ce que je dis est bon.

Je ne sais pas si utiliser la méthode rowCount serait une solution. J’ai pensé que l’on pouvait créer une variable $compteur et y additionner après chaque requête le nombre de lignes qui sont retournés.

Salut,

Je te conseille fortement de lire cet article : https://fr.wikipedia.org/wiki/Forme_normale_(bases_de_donn%C3%A9es_relationnelles). Ce qui t’intéresse est la première forme normale :

Est en première forme normale, une relation (ayant par définition une clé), et dont les attributs possèdent tous une valeur sémantiquement atomique

[…]

Viole l’atomicité, les attributs :

  • constitués par un ensemble de valeurs énumérées (liste, tableaux…) dont les différentes valeurs sont sémantiquement indépendantes.
  • n’ayant aucune valeur (le "NULL" n’existe pas en algèbre relationnelle)

Il me semble important de respecter cette forme normale :

  • Comment faire pour récupérer un seul post-it ? Tu récupères d’abord le projet puis dans la liste de posts-it tu cherches celui qui t’intéresse ? Pas très propre. EDIT : et pas forcément possible en fonction de tes inputs.
  • Idem pour les issues.
  • Demain tu voudras lier tes issues à des commentaires par exemple. Tu fais comment ?
  • Tu peux toujours faire une requête avec plusieurs jointures pour récupérer toutes tes données quand tu en auras besoin.
  • Et très certainement plein d’autres problèmes que je n’ai pas cité…
+3 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte