0

J'essaie actuellement de trouver comment créer une base de données relationnelle pour un formulaire d'options de module d'université. D'abord, vous entrez votre ID d'étudiant, nom, prénom et sélectionnez votre programme d'études par exemple. La gestion des ressources humaines choisit ensuite plusieurs modules dans le formulaire en utilisant des cases à cocher jusqu'à ce que le total des crédits pour chaque semestre pour chaque programme soit choisi.Stockage des réponses à choix multiples d'un formulaire d'options de module dans une base de données Microsoft Access

Toutefois, en choisissant plusieurs modules et en étant une conception de base de données relationnelle, je ne suis pas sûr de la façon de stocker ces réponses multiples dans le tableau des options de l'étudiant comme indiqué ci-dessous.

J'ai actuellement les tables de

Tableau: Student les noms des champs: ID étudiant (clé primaire) Nom Nom

Tableau: Programme Programme (clé primaire) Crédits du semestre 1 (différents programmes permettent différents crédits) Semestre 2 Crédits (différents programmes permettent différents crédits)

Tableau: Module Module ID (clé primaire) Nom du module Crédits Condition préalable

Le dernier tableau est celui que je me bats avec comme après les modules sont choisis parmi la forme ils seront stockés dans ce tableau et actuellement ce ...

tableau: options élèves ID étudiant (clé primaire) du programme (lien vers le tableau des programmes)

Cependant, je ne suis pas sûr de quels champs doivent être stockés sans être trop encombré et avoir toujours un lien vers la table de modules comme indiqué ci-dessous qui sont tous stockés individuellement.

Est-ce que ma table de modules doit avoir un lien de relation vers la table des options de l'étudiant pour être une base de données relationnelle?

Comment est-ce que je stockerais les multiples modules choisis dans le formulaire d'options d'étudiant?

Merci

+0

Si je comprends bien votre problème, vous devriez juste faire une relation plusieurs-à-plusieurs entre l'étudiant et le module (par exemple, avoir une table entre ces deux tables qui les relie en stockant des paires de StudentID et ModuleID). –

+0

Merci pour votre réponse rapide! – user3167227

Répondre

2

En ce qui concerne votre problème de base, je pense que la conception de base de données décrit ci-dessous devrait être suffisant:

A simple ERM solving the problem

Vous ne devriez pas stocker à la fois, les modules étudiant choisit et le programme qu'il est inscrit dans le même tableau. Au lieu de cela, faites comme décrit ci-dessus.

  • Le programme étudiant est inscrit à devrait juste être une clé étrangère dans la table des étudiants, donc vous donner un à plusieurs-relation (Ceci est un point crucial cependant, parce que cela signifie que tout un étudiant peut Si votre base de données doit pouvoir être inscrite à plus d'un programme, vous avez également besoin d'une relation plusieurs-à-plusieurs.
  • Les modules doivent être liés à un étudiant via une table du milieu (je l'ai appelé StudentModule dans ce cas), ce qui vous donne la relation many-to-many souhaitée. Ce que vous avez maintenant à faire est bien sûr de vérifier par code, si le module n'est pas déjà sélectionné par l'étudiant (ainsi que tous les autres petits et gros détails qu'il y a ...). Mais ce que vous auriez à faire avec n'importe quel design de base de données pour autant que je sache.
  • Comme vous pouvez le voir, j'ai également inséré une table du milieu pour que le module programme la relation. C'est parce que je suppose qu'un module est admissible à plusieurs programmes. En liant des modules à des programmes de cette façon, vous pouvez alors vérifier pour des choses comme "cet élève peut-il choisir ce module", ...
+0

Merci beaucoup pour votre réponse rapide et détaillée, cela m'a vraiment aidé et j'apprécie! – user3167227