Je n'ai jamais créé de panier, ni de forum en php. en dehors de la visualisation et l'analyse d'un autre projet de personnes ou de visualisation des tutoriels qui montrent comment faire un tel projet ou comment être un tel projet. Comment une personne sait-elle comment concevoir la structure de la base de données pour créer une telle chose? Je devine probablement son probbably par l'essai et l'erreur ...comment savez-vous comment concevoir une base de données mysql lors de la création d'une application php avancée?
Répondre
La technique principale que vous pouvez apprendre sur la conception de base de données s'appelle Database Normalization.
La normalisation de la base de données a ses limites, surtout si vous avez beaucoup de transactions. À un certain point, vous pourriez être forcé de Denormalize.
Mais à mon avis, il est toujours préférable de commencer par une conception de base de données normalisée.
vous devriez lire et comprendre les bases de normalization. pour la plupart des projets, la normalisation à la 3ème forme normale sera très bien. Il y a toujours des scénarios où vous voulez plus ou moins de normalisation, mais la compréhension des concepts sous-jacents vous permettra de réfléchir à la façon dont votre base de données est structurée dans un format normalisé.
est ici un exemple de base de la normalisation d'une table:
students
student_id
student_name
student_class
student_grade
une table assez standard contenant diverses données, mais nous pouvons voir quelques questions tout de suite. nous pouvons voir que le nom d'un étudiant dépend de son identité, cependant, un étudiant peut être impliqué dans plus d'une classe, et chaque classe pourrait avoir une note différente. on peut alors penser aux tables en tant que tels:
students
student_id
student_name
class
class_id
class_name
ce n'est pas mal, maintenant, nous pouvons voir que nous avons plusieurs étudiants, et différentes classes, mais nous n'avons pas pris les notes de l'élève.
grades
student_id
class_id
grade
nous avons maintenant une 3ème table, ce qui nous permet de comprendre la relation entre un élève en particulier, une classe particulière, et une note associée à cette classe. à partir de notre première table initiale, nous avons maintenant 3 tables dans une base de données normalisée (supposons que nous n'avons pas besoin de normaliser davantage les notes pour l'exemple :))
quelques choses que nous pouvons tirer de cet exemple très basique :
- nos données sont toutes liées à une sorte de clé (student_id, class_id, et student_id + class_id). Ce sont des identifiants uniques dans chaque table.
- avec nos relations calées, nous sommes en mesure de relier les uns aux autres informations (nombre de classes est étudiant # 4096 inscrit?)
- nous pouvons voir nos tableaux ne contiennent pas de données dupliquées maintenant (penser à notre première table , où student_class pourrait être la même valeur pour de nombreux étudiants. si nous devions changer le nom de la classe, il faudrait mettre à jour tous les enregistrements. dans notre format normalisé, nous pouvons simplement mettre à jour nom_classe de class_id)
excellente réponse mec – jake
Je vous recommande également d'utiliser un éditeur visuel pour créer votre schéma de base de données. J'ai récemment utilisé: http://dev.mysql.com/workbench/
Une fois que vous créez une conception de base de données, demandez à quelqu'un avec plus d'expérience de la regarder et de vous donner votre avis.Mais sachez que, autant de temps que vous pouvez consacrer à la conception, vous devrez éventuellement mettre en œuvre et découvrir que vous manquez quelque chose ou que vous pourriez faire un travail encore meilleur en le faisant d'une autre manière. Donc, concevez, obtenez des commentaires, mais n'ayez pas peur de changer.
merci de corriger l'orthographe. Mon anglais est horrible .. Je sais :( –
ha, pas de problème :) – Owen