2010-04-25 3 views
0

Im créer une petite base de données qui a employé, emp_shift, shift, tables maintenant je suppose être capable de calculer à la fin du mois quel employé a fait le plus grand nombre de décalages. J'ai créé la création SQL, insérer des instructions pour les tables, et un petit diagramme pour expliquer ce que j'essaie d'accomplir, je suis un débutant et c'est un travail que j'ai essayé de faire pendant les 4 derniers jours.Little (Employee - Shift) Aide de base de données SQL

Schéma: http://latinunit.net/emp_shift.jpg SQL: http://latinunit.net/emp_shift.txt

pouvez-vous les gars vérifier, délai est de 2 jours et cela est juste une partie de la base de données entière

+0

Il est difficile de vérifier si vous ne liez pas au Fichier SQL –

+0

Une sorte de faute de frappe dans les contraintes de Table Shift ... De plus, votre PK dans la table EMP_SHIT ne fonctionnera pas. Cela permettra seulement aux employés de travailler chaque quart une fois dans leur vie entière. La date devrait également faire partie de la clé. Les champs d'horodatage peuvent être des variables, car vous ne vous souciez pas vraiment d'eux. Ce sont essentiellement des descriptions et il semble que vous ne fassiez pas de maths dessus. – MJB

+0

Mais emp_shift est une entité composite, car il existe une relation plusieurs à plusieurs entre l'employé et le décalage, de sorte que chaque clé primaire de chaque table sera utilisée dans l'entité composite en tant que clés primaires. C'est ce qui a été enseigné, mais peut-être pouvons-nous aussi faire de l'attribut date_shift une partie de la clé? CONSTRAINT EMP_SHIFT_PK CLÉ PRIMAIRE (EMP_ID, SHIFT_ID, EMP_SHIFT_DATE), –

Répondre

1

C'est un début raisonnable. Aurez-vous plus de tables? Si ce n'est pas le cas, il sera difficile d'identifier comment payer les gens - par exemple, il semble que vous pourriez vouloir un tableau de «période de paie». Ensuite, vous pouvez trouver les dates de début et de fin et être en mesure de compter les changements au sein de cette période. Mais si tout ce que vous devez faire est exactement ce que vous avez dit, c'est un bon début.

(Je suppose que vous avez d'autres colonnes à l'esprit, comme le nom de l'employé, mais ce serait évident).

+0

non je n'ai pas besoin de calculer un salaire horaire juste des quarts –

+0

BTW, puisque cela semble être votre deuxième dans ce qui sera une série de questions, vous devez ACCEPTER une réponse à la première question .Il semble que vous ayez obtenu la définition de votre table à partir de la réponse. Si vous l'avez aimé et utilisé, il suffit de l'ACCEPTER déjà. Voir mes commentaires ci-dessus. – MJB

0

Vous pourriez commencer par nous dire whoch vous SGBDR utilisent, car certains des détails les plus fins pourraient être différents entre les RDMS.

Vous devez créer un lien entre les tables (appelé JOINS, Read this), puis effectuer un count des données demandées. Après avoir lu certains d'entre eux, montrez-nous ce que vous avez fait, et nous pouvons vous aider là où vous avez des problèmes.

+0

im utilisant oracle je ne pense pas qu'il a datetime –

0

aussi, il serait préférable PRACTIVE d'utiliser un seul numérique comme la clé primaire au lieu de « A », « B », « C », etc.