Conception de base de données pour une relation récursive

Voici un cas où je suis en train de modéliser une base de données pour l'entreprise: les

  • Entités: Employees, Managers, Departments.
  • Un Employee travaille à seulement 1 Department tout un Department peut avoir de nombreuses Employees travail.
  • Un Manager peut gérer uniquement 1 Department et de même Department peuvent avoir seulement 1 Manager.
  • Un Manager supervise de nombreux Employees, mais un Employee n'est supervisé par un Manager.

Maintenant, j'ai 2 possibilités pour ce modèle:

Première solution:

Je vais considérer que le Manager entité hérite de la Employee entité considérant que je vais garder de données qui est unique pour les Gestionnaires (par exemple, primes & Mode).

Conception de base de données pour une relation récursive

  • Étant donné que la relation entre Department et Employee est 1:N alors je vais mettre le
    Department Id de clé étrangère dans la Employee table pour le Works
    relation.

  • Étant donné que la relation entre Department et Manager est 1:1 alors je vais mettre le
    Department Id de clé étrangère dans la Manager table pour le Manages
    relation.

Problème: Comment puis-je représenter la relation récursive entre les Manager et Employee?


Deuxième solution:

Je vais considérer que le Manager entité n'est pas nécessaire que d'autres Employees peut également avoir un Bonus et Status. (En fait, j'ai ajouté ces 2 attributs, juste pour voir comment le modèle dans les deux cas)
Conception de base de données pour une relation récursive

  • Étant donné que la relation entre Department et Employee est 1:N alors je vais mettre le
    Department Id de clé étrangère dans la Employee table pour le Works
    relation.
  • Étant donné que la relation entre Employee et Manager est 1:N alors je vais mettre le
    Employee Id de clé étrangère dans la Employee table pour le Supervises
    relation et de l'appeler Manager Id.

Problème: Comment peut-on se représenter la relation entre la Manager et Department?


Questions:

  1. Est-il des erreurs évidentes dans la conception comme ils sont?
  2. Comment résoudre le problème dans les deux cas?
  3. Est-il une meilleure solution que ces deux?
InformationsquelleAutor Songo | 2012-04-01