2010-06-18 5 views
0

Donc, j'essaie d'apprendre beaucoup à la fois, et cet endroit est vraiment utile! Je crée un petit site Web de journal de course pour moi et peut-être quelques autres personnes, et je l'ai pour que l'utilisateur puisse ajouter des séances d'entraînement pour chaque jour. Avec chaque entraînement, j'ai une variété d'informations que l'utilisateur peut remplir pour l'entraînement, comme la distance de course, le temps, la qualité de course, le parcours, etc ... Je stocke cela dans une base de données MySql avec des champs intitulés " distance "," time "," runquality ", etc ... Maintenant, ces titres de champs ne correspondent pas à ce que je veux afficher sur le journal en cours d'exécution, donc je pensais utiliser l'attribut" Comments "pour un champ à stocker son titre lisible par l'homme - ainsi le champ "runquality" aurait "Quality of run" comme commentaire, et ensuite je tirerais le commentaire avec une requête SQL et l'afficherais à la place du nom du champ. Est-ce une bonne façon théorique/pratique de s'y prendre? Et quel genre de SQL utiliserais-je pour tirer le commentaire pour le champ de toute façon? Deuxièmement, supposons que je souhaite ajouter la possibilité pour l'utilisateur de créer ses propres descripteurs d'entraînement. Ainsi, un utilisateur souhaite ajouter un descripteur "température" pour son entraînement. Devrais-je créer un script qui ajoute des champs à ma table d'entraînement, ou devrais-je créer un tableau séparé listant uniquement des descripteurs d'entraînement et relier d'une manière ou d'une autre la table des descripteurs avec la table "contents"? Je n'ai appris aucune théorie sur la conception de base de données ou quoi que ce soit, donc toute aide est appréciée!MySql "comments" paramètre comme descripteur?

Répondre

1

Vous devez éviter de mélanger des métadonnées et des données. L'attribut de champ "Comments" est une métadonnée. C'est vraiment juste une note pour le développeur. L'accès aux métadonnées d'un programme est appelé réflexion. Il n'y a pas besoin de réflexion dans votre cas, et cela compliquera les choses. Simplifiez-vous en nommant simplement les en-têtes dans le code de l'application. Il n'est pas nécessaire d'utiliser le nom du champ comme en-tête. Si vous construisez une table de traduction, ce sera encore mieux, de sorte que vous pouvez facilement prendre en charge d'autres langues. Par exemple, vous savez que le champ "Téléphone" est vraiment "Numéro de téléphone", vous l'utilisez donc comme titre, et vous pouvez avoir une table de traduction que vous recherchez chaque fois que vous créez la vue. "Numéro de téléphone" renverra "Numéro de téléphone" pour l'anglais, et "Numéro de téléphone" pour une autre langue.