les solutions de data-warehouse sont faites pour ça
La signature au bas d'un devis, c'est pour indiquer qui a fait le devis. C'est uniquement visuel, sauf de temps en temps pour faire une recherche sur quels devis a fait jacques dupont, c'est à dire une fois par an au maximum :
"select * from devis where signature='jacques dupont'" Cela n'a aucun autre but. Ce n'est pas pour faire des stats, ce n'est pas pour faire des jointures, ce n'est pas pour faire des calculs de rentabilité, c'est uniquement pour montrer à l'écran qui a fait le devis ou sortir la liste des devis de jacques dupont qui s'est barré il y a 2 ans. Ca va, c'est compris ?
Je n'ai jamais, jamais dit que ce champ signature était fait pour faire des jointures. Je n'ai jamais, jamais programmé ce champ signature pour faire des jointures. J'en ai un peu ras le bol que l'on me fasse dire des choses que je n'ai pas dites. Et s'il faut sortir un datawarehouse à je ne sais combien de dizaines de milliers d'euros pour répondre à la question "quelle est la liste des devis de jacques dupont", c'est qu'il y a quelque chose de pourri au royaume de l'informatique !
Tant qu'on y est, pourquoi est-ce qu'on stocke la date dans le devis. Pourquoi ne pas stocker un id vers une table qui contient les dates ? J'aimerai que iclo lise enfin attentivement la modélisation que j'ai expliqué et qu'il voit que toutes les objections qu'il m'apporte sont résolues avec la notion de fonction commerciale. Et comme à un instant T, un commercial = une fonction commerciale,
la modélisation expliquée fait exactement ce qu'il demande avec des jointures sur des champs integer.
Merci pour la leçon sur le cahier des charges. J'ajouterais que les cahier des charges oublient trop souvent les utilisateurs, leurs qualités et leurs défauts. Le cas que je signalais (celui du commercial qui échange son code et son mot de passe) arrive trop souvent pour pouvoir être négligé. Et si la réponse que tu apportes à ce problème, c'est un datawarehouse, on n'est pas sorti de l'auberge ! Jusqu'à présent, le débat était à peu près sérieux.
Je terminerais sur une phrase qui m'a fait bondir :
mais je pense que c'est une décision complexe, et je ne juge pas ça souhaitable de le conseiller d'entrée de jeu à une personne qui vient poser une question sur le forum, sans avoir l'ensemble des détails sur le contexte. (ni le niveau de compétence de la personne)
Eh bien non, je ne suis absolument pas d'accord. On n'est pas sur un forum destiné à de la vulgarisation. On est sur un forum technique et il est normal d'aller au-delà des réponses simplistes du type "De maniere generale il faut toujours stocker la clef primaire d'un champ." surtout si la réponse est complexe. C'est même surtout dans ces cas complexes qu'il faut essayer d'expliquer : cela s'appelle de la pédagogie. Au contraire de toi, je trouve fortement souhaitable de dire aux gens que ce n'est pas si simple au lieu de les aiguiller sur les réponses simplistes parce qu'on ne connait pas leur niveau de compétence. Regarde mon premier post dans ce thread : j'essaye de faire appel à l'intelligence de celui qui pose la question en lui disant "attention, ce n'est pas aussi simple". Comme disait l'autre, aider les gens, ce n'est pas leur donner du poisson, c'est leur apprendre à pêcher.
Ceci est définitivement mon dernier message sur ce sujet.