Département de l'employé de la Relation dans la Base de données
Je suis de la conception d'une base de données relationnelle pour SCM (dans le cadre de la conception de système d'information pour l'entreprise). Mais quand il est venu à la relation entre l'employé et son département, j'ai eu des soucis .
J'ai conçu les entités suivantes :
Employee
( ID , Fname , Mname , Lname , Sexe , Téléphone , Adresse , date d'Embauche , etc..)Department
( ID , nom )
et étant donné que la relation est-un-à-plusieurs (chaque employé doit travailler pour - et un seul - dept., alors que chaque département dispose de nombreux employés), j'ai ajouté Department ID
les attributs de la Employee
. Mais le problème est de savoir comment représenter un MANAGE
relation un-à-un).
Est-il valable pour la conception d'une nouvelle relation que nous appelons : Employee_manage_Department
et ses attributs sont (Employee ID , Department ID
) où les deux colonnes font partie de la clé primaire ??
merci d'avance
OriginalL'auteur Wadda7 | 2012-08-18
Vous devez vous connecter pour publier un commentaire.
Oui, mais comme le rôle de l'Employé dans l'entreprise a limited (la vie)de temps, je voudrais ajouter deux nouvelles colonnes DateTime, DATE_FROM et DATE_TO, faisant de la DATE_FROM partie du composé de la clé primaire.
OriginalL'auteur Luis Quijada
Depuis le gestionnaire-service relation est de 1:1, vous pouvez simplement ajouter un
Manager ID
pour le ministère de la table, qui agira en tant que clé étrangère référençant la table des employés:Ce qui introduit une dépendance circulaire, la prévention de l'insertion de nouvelles données, qui peut être résolu de la manière suivante:
Manager ID
NULL-mesure. Vous devrez peut-être faire de toute façon dans le cas où vous avez besoin pour soutenir le concept de gestionnaire de moins de ministère.BTW, ce qui permet un département à être géré par un employé d'un autre département. Si cela n'est pas désirable, vous aurez besoin d'utiliser un identifiant relation de la même ministère de l'ID de se propager à l'arrière:
REMARQUE: Le séparer
Employee_manage_Department
tableau serait approprié pour la modélisation de la relation M:N.OriginalL'auteur Branko Dimitrijevic
La
Employee.department_id
devrait être unforeign_key
à laDepartment
table et d'être unique et non-null. Qui répond à vos contraintes deOne Employee has one department
etOne department can have many employees
OriginalL'auteur Pratik Mandrekar
Non, je ne vois pas ce que nécessaire si l'employé et ne peut appartenir qu'à un seul ministère, mais si un employé peut avoir plus d'un ministère, alors vous pouvez aller de l'avant ... sur une seconde pensée, si vous souhaitez garder la forme et la date de sortie du personnel, je pense que vous pouvez
OriginalL'auteur omoabobade
Est le gestionnaire d'un département toujours l'un des employés qui travaillent dans ce département? Si la réponse est oui, alors un booléen MnagerFlag dans la table des Employés devrait être suffisant.
Vous aurez besoin de déclarer une contrainte ou d'appliquer une règle qui empêche plus d'un employé dans une depratment d'avoir ce drapeau.
OriginalL'auteur Walter Mitty