Question de structure

Résolu
LostWorld Messages postés 5 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 18 novembre 2007 - 16 nov. 2007 à 16:54
LostWorld Messages postés 5 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 18 novembre 2007 - 18 nov. 2007 à 17:28
Bonjour à tous,

Ma question est plus généraliste que technique. Je débute actuellement un projet d'une taille plus grosse que ce que j'ai pu développer par le passé et manque d'expérience pour mes choix de structure DB ...

En gros, j'ai un gestionnaire de devis/projet à développer pour ma boite en interne. Chaque devis aura diverses taches.
Je pensais créer une table avec les différents devis et une autre avec les taches liées par clé primaire et secondaire.
Jusque là rien de bien compliqué ...
Ensuite il faudrait que certains de ces devis puissent passer en stade de développement si le devis est accepté et d'autres en archivage.

Sachant que s'ajoute à cela un système de template de devis, la notions de plusieurs variantes d'un même devis si le client le demande, etc et donc que globalement la structure est assez complexe (pour moi en tout cas), la question que je me pose est la suivante :

-> Vaut-il mieux que je dispose de tables séparées pour l'archivage, la mise en développement, la facturation et donc que je déplace les devis au fur et à mesure de leur évolution (signé/ pas signé/ etc) d'une table à l'autre ou que je dispose de tous les stades de cette évolution dans la même table (par exemple un champ qui prend 1 si on est au stade devis, 2 au stade en développement, etc) ?
Sachant qu'avec le temps, je crains qu'en travaillant avec une table (2 en fait puisque table "Devis" et table "Taches"), elle ne s'encombre et que cela ralentisse fortement les performances.

Voilà, merci d'avance à ceux qui prendront la peine de me répondre ... je manque réellement d'expérience pour me passer de quelques conseils de personnes plus expérimentées.

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 nov. 2007 à 19:39
Salut,

Je pense que tu peux travailler que siur deux tables, les bases de données sont réalisée pour travailler sur des milliers, voir millions d'enregistrements.

C'est plus intéressant de stocker tes devis dans une seule table, avec une colonne etat, si tu veux tu peux faire une table d'archivage(pour stocker des vieux devis)
Mais cela n'est pas nécessaire.

Si au chargement de ta liste de devis dans le where tu enleves les devis archivés, tu n'auras pas de problème.

Dans un deuxieme temps si ton nombre d'enregistrement est trop important > 10000 par exemple, une table archivage peut etre utile.

En genéral, les problemes de performance ne vienennt pas de la base mais du probleme qui interogge. Et des problemes d'architecture logicielles.

Bon courgae.
3
LostWorld Messages postés 5 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 18 novembre 2007
18 nov. 2007 à 17:28
Bonsoir,

Merci d'avoir pris la peine de me répondre, ca m'évitera d'hésiter encore pendant des heures sur quelle méthode adopter.
Je vais donc travailler avec 2 tables, ca m'évitera de devoir déplacer sans cesse des "rows" d'une table à l'autre et simplifiera ma structure.
Merci encore.
0
Rejoignez-nous