Créer une base de données pour un cours nécessite une planification soigneuse des entités et de leurs
relations. Voici un exemple de structure de base de données qui pourrait convenir pour gérer un cours, y
compris les étudiants, les cours, les enseignants, et les inscriptions.
### Modèle de base de données
#### Tables
1. **Étudiants**
- `id` (int, clé primaire, auto-increment)
- `nom` (varchar)
- `prenom` (varchar)
- `email` (varchar)
- `date_inscription` (date)
2. **Cours**
- `id` (int, clé primaire, auto-increment)
- `titre` (varchar)
- `description` (text)
- `date_debut` (date)
- `date_fin` (date)
- `enseignant_id` (int, clé étrangère)
3. **Enseignants**
- `id` (int, clé primaire, auto-increment)
- `nom` (varchar)
- `prenom` (varchar)
- `email` (varchar)
4. **Inscriptions**
- `id` (int, clé primaire, auto-increment)
- `etudiant_id` (int, clé étrangère)
- `cours_id` (int, clé étrangère)
- `date_inscription` (date)
#### Relations
- **Étudiants** peuvent s'inscrire à plusieurs **Cours** (relation plusieurs à plusieurs) via la table
**Inscriptions**.
- Chaque **Cours** est enseigné par un **Enseignant** (relation un à plusieurs).
### Exemple de requêtes SQL
1. **Ajouter un étudiant**
```sql
INSERT INTO Etudiants (nom, prenom, email, date_inscription) VALUES ('Dupont', 'Jean',
'[Link]@[Link]', CURDATE());
```
2. **Ajouter un cours**
```sql
INSERT INTO Cours (titre, description, date_debut, date_fin, enseignant_id) VALUES ('Introduction à la
législation', 'Un cours sur les bases de la législation.', '2024-01-15', '2024-05-15', 1);
```
3. **Inscrire un étudiant à un cours**
```sql
INSERT INTO Inscriptions (etudiant_id, cours_id, date_inscription) VALUES (1, 1, CURDATE());
```
4. **Lister tous les cours d'un étudiant**
```sql
SELECT [Link]
FROM Cours
JOIN Inscriptions ON [Link] = Inscriptions.cours_id
WHERE Inscriptions.etudiant_id = 1;
```
### Conclusion
Cette structure de base de données vous permettra de gérer efficacement les informations relatives aux
étudiants, aux cours et aux enseignants. Vous pouvez adapter les tables et les relations en fonction des
besoins spécifiques de votre application ou de votre système de gestion de cours.