2017-07-05 1 views

Répondre

1

Oui. Votre table de prêt ressemble à une table de jonction, de sorte que le PK doit être la combinaison de DocumentID et EmployeeID.

+0

Je pense qu'un document peut être emprunté plusieurs fois par le même employé, donc ce n'est pas unique. Si les champs de date sont 'datetime' vous pouvez en ajouter un pour le rendre unique, mais je vous conseille d'utiliser un 'id'field qui incrémente automatiquement dans chaque table comme clé primaire pour être sûr. – BitAccesser

1

Est-ce que toutes les tables ont besoin d'une clé primaire: Non

chaque table doit avoir une clé primaire: Oui. Il peut y avoir des situations où une table n'a pas besoin d'une clé primaire, mais celles-ci sont rares et en général chaque table devrait en avoir une. C'est parce que vous voulez identifier de manière unique un enregistrement et qu'il devient difficile de travailler avec des enregistrements qui n'ont pas de clés primaires.

Dans votre cas, OUI votre table de prêt doit avoir une clé primaire. Comme Andre a déjà dit dans sa réponse, il devrait être une combinaison des DocumentID et EmployeeID.

Au risque d'introduire une certaine confusion: Utilisez soit DocumentID + EmployeeID ou EmployeeID + DocumentID. L'ordre peut faire la différence. Si vous partez pour dire DocumentID + EmployeeID (dans cet ordre) alors la base de données utilisera la clé primaire lors de la recherche sur DocumentID plus EmployeeID (n'importe quel ordre dans votre requête), et pour les recherches sur le DocumentID mais ne l'utilisera pas lors de la recherche sur seulement EmployeeID.