2010-08-26 8 views
0

Je suis en train de mettre le concept pour une Relational DB et je suis tombé sur quelques problèmes conceptuels:Relational DB Concept

  1. Si je dispose de plusieurs entités distinctes qui sont « imbriquées » dans l'autre/une hiérarchie par exemple:

Bosses peuvent avoir plusieurs employés. Ces employés ont différents projets qu'ils font et un projet a encore plusieurs sections.

Alors

B1-Bn: 

     E1-En 

      P1-Pn 

       Section1 -SectionN 

Comment cela serait mieux mis en correspondance dans une base de données?

Ou en d'autres termes, comment cette hiérarchie mieux cartographié dans un db relationnel?

  1. Maintenant, j'ai des clients qui interagissent avec ces employés.

Ils sont rencontrés par les patrons Puis ils décident quel employé travaillera pour eux. Ensuite, ils sont affectés à des projets, avec une ou plusieurs sections.

Comment cela serait-il mieux mappé.

  1. les relations 1-n, m-n, 1-1: Peuvent-ils être utilisés pour par exemple .:

Ceci est un foreignkey en raison de la relation 1-n. Ceci est un ManytoManyField en raison de la relation m-n.

  1. Et y at-il un excellent outil en ligne pour mieux comprendre/visualiser cela.

Merci beaucoup pour votre temps!

Répondre

1

Vous pouvez suivre un cours sur la conception de bases de données relationnelles; il faut plus de quelques jours pour expliquer ou maîtriser ce sujet. Mais vous êtes sur la bonne voie.

La première chose que vous voyez est peut-être une hiérarchie, mais avant de vous le savez, il y aura des relations qui ne sont pas hiérarchique, donc un réseau est formé. C'est pourquoi les bases de données relationnelles ne fonctionnent pas avec les hiérarchies.

Vous identifiez différents types d'entités et disposez d'une table pour chaque type.

Pour chaque type d'entité que vous identifiez les propriétés de ces entités - chaque propriété sera une colonne de la table. Si une propriété n'a pas de valeur atomique, mais une valeur structurée, ces valeurs structurées doivent être considérées comme une entité et doivent recevoir sa propre table, et la propriété sera une clé étrangère référençant cette table.

De cette façon, vous formerez un réseau de tables liées par des clés étrangères. C'est ce qu'on appelle un diagramme entité-relation. De nombreux concepteurs préconisent la création d'un tel diagramme en premier, sans mappage direct des types d'entités aux tables. Ils permettent des relations plusieurs-à-plusieurs entre les types d'entités dans le diagramme.D'autre part, une clé étrangère entre les tables est toujours many-to-1 ou 1-to-1. Ces concepteurs ont donc une étape de «mise en œuvre» dans laquelle ils introduisent une table supplémentaire pour chaque relation plusieurs-à-plusieurs. Personnellement, je n'utilise pas les relations plusieurs-à-plusieurs dans mes diagrammes pour commencer.

+0

Bonne réponse! Merci beaucoup! Rendu plus clair! – MacPython

+0

Merci ... il reste de nombreuses questions épineuses, par ex. comment identifier les entités (certaines personnes utilisent des colonnes d'ID pour tout, d'autres les évitent comme la peste), la normalisation (mal expliqué sur Wikipedia), etc. – reinierpost