Modèle de données, besoin d'avis
Posté : 27 avr. 2005, 15:26
Bonjour,
Toujours en quête de la mise en place d'un modèle de données robuste (mes tables pouvant contenir plusieurs millions d'enregistrements), pour 2 tables j'hésite au niveau de la structure.
Pour situer mon problème, mon appli gère des projets, chaque projet est composé de dossiers, chaque dossier comportant plusieurs questions/reponses (qui varient selon le projet), chaque dossier associé à 1 client.
Pour la table dossier je m'oriente vers les champs suivant:
- id_dossier
- id_projet (puisqu'un dossier est lié à un et un seul projet)
- id_client (1 dossier associé à 1 client)
Pour la table informations (question/reponse)
J'hésite entre:
-id_dossier <-- définit comme index sur la table
-id_question
-reponse
Clé : (id_dossier + id_question)
Ou
-id_dossier <--- définit comme index sur la table
-id_projet <--- définit comme index sur la table
-id_question
-reponse
Clé: (id_dossier + id_question)
Pourquoi la 2eme solution alors qu'elle répète des informations dejà présentes dans la table dossiers, parce que la table informations va contenir plusieurs millions d'enregistrement, et en faisant ainsi je peux créer un index sur le champ id_projet, puisque la plupart du temps je voudrais manipuler les données pour un projet précis et non tous les projets en même temps.
Qu'en pensez vous, quelle est la meilleure solution selon vous ?
N'hésitez pas j'attends avec impatience vos suggestions.
Merci à tous.
Toujours en quête de la mise en place d'un modèle de données robuste (mes tables pouvant contenir plusieurs millions d'enregistrements), pour 2 tables j'hésite au niveau de la structure.
Pour situer mon problème, mon appli gère des projets, chaque projet est composé de dossiers, chaque dossier comportant plusieurs questions/reponses (qui varient selon le projet), chaque dossier associé à 1 client.
Pour la table dossier je m'oriente vers les champs suivant:
- id_dossier
- id_projet (puisqu'un dossier est lié à un et un seul projet)
- id_client (1 dossier associé à 1 client)
Pour la table informations (question/reponse)
J'hésite entre:
-id_dossier <-- définit comme index sur la table
-id_question
-reponse
Clé : (id_dossier + id_question)
Ou
-id_dossier <--- définit comme index sur la table
-id_projet <--- définit comme index sur la table
-id_question
-reponse
Clé: (id_dossier + id_question)
Pourquoi la 2eme solution alors qu'elle répète des informations dejà présentes dans la table dossiers, parce que la table informations va contenir plusieurs millions d'enregistrement, et en faisant ainsi je peux créer un index sur le champ id_projet, puisque la plupart du temps je voudrais manipuler les données pour un projet précis et non tous les projets en même temps.
Qu'en pensez vous, quelle est la meilleure solution selon vous ?
N'hésitez pas j'attends avec impatience vos suggestions.
Merci à tous.