Bonjour,
Voici en pièce jointe une partie de mon MLD. Je me disais que je pouvais retirer ma table HC et créer une vue sur PROGRAM_HC qui récupererait les HC_ID avec la clause distinct ? Qu'en pensez vous ?
Bonjour,
Voici en pièce jointe une partie de mon MLD. Je me disais que je pouvais retirer ma table HC et créer une vue sur PROGRAM_HC qui récupererait les HC_ID avec la clause distinct ? Qu'en pensez vous ?
TASK et PROGRAM, on comprend de quoi il s'agit mais HC ?
Et comme on ne voit pas toutes les colonnes de la table HC, difficile de dire si on peut la supprimer.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
SISI il y a tout
c'est juste un ID
HC est une machine, et elle est rattachée à des programmes.
Et cette machine n'est pas décrite par d'autres attributs dans une table des machines ?
Avec ce que tu nous dis, je dirais que, sémantiquement, une HC est bien différent d'une TASK et d'un PROGRAM et qu'il est donc logique que la table HC ait son existence propre.
Comme tu as une association (0,n - 0,n) entre HC et PROGRAM, comment pourrais-tu conserver cette association si tu supprimes la table HC ?
Je vois aussi que HC est liée à deux autres tables n'apparaissant pas sur l'extrait de ton schéma. Suprimer HC supprimerait aussi ces associations.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Non, mais je comprends qu'une HC est identifiée relativement par rapport à ces programsEt cette machine n'est pas décrite par d'autres attributs dans une table des machines ?
Mon idée était de créer une vue qui faisait quelque chose comme
et les liaisons des autres tables auraient été faite avec la vue et non avec hc
Code : Sélectionner tout - Visualiser dans une fenêtre à part select distinct hc_id from program_hc
donc mon hc devient program_hc et je tire les données hc_id avec ma vue..
j'espère avoir été clair dans les propos ....
Qu'en pensez vous ? est ce complètement idiot ?
Sur le plan de la modélisation des données, c'est une hérésie ! Une machine (HC) est une machine et doit figurer en tant qu'entité dans le MCD et donc en tant que table indépendante dans le MLD puis le MPD.
Sur le plan pratique, je ne pense pas que ta combine soit plus performante !
Une vue est exécutée à chaque fois qu'elle est appelée, sauf si ton SGBD implémente les vues matérialisées, et le DISTINCT est une opération coûteuse. Avec un peu de chance, tu n'ajoutes pas souvent de machines, la vue est appelée souvent et son résultat est conservé en mémoire donc très rapidement accessible. Mais je pense quand même qu'une table sera plus rapide. Il faudrait l'avis d'un expert en mécanique des SGBD, tel SQLPro, pour argumenter plus précisément.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager