Bonjour,

Je suis actuellement en stage et une association me demande de faire un sorte de gestionnaire des jours de cantine

En gros, un parent se connecte à un compte et coche les jours ou son enfant doit manger à la cantine sur un planning. Je me demande donc comment enregistrer les dates dans la base de données.

En effet, y'a plein d'enfant donc il y'aura plein de fois les même date
Ex : 200 enfants qui mange le 06-01-2016

Ma question : Comment enregistreriez-vous les dates dans la base de données ?

Solution 1:

TABLE CALENDRIER
idDate | Date
/////////////////////
1           | 06-01-2016
2           | 07-01-2016

TABLE PLANIFIER
idEnfant | idDate
///////////////////////
1              | 2
1              | 1
2              | 1

Solution 2:

TABLE PLANIFIER

idEnfant | Date
/////////////////////
1              | 06-01-2016
1              | 07-01-2016
2              | 06-01-2016

Cela peut paraître comme une question stupide, surtout que du PHP et de la base de données, cela fait un moment que j'en fait mais je me dis que la Solution 1 sera peut-être trop lourde et que la solution 2 prendra beaucoup plus d'espace.

Quel serait la meilleure solution ?

3 réponses


arnich
Réponse acceptée

Niveau performance je pense qu'une jointure pour ca n'est pas une bonne idée. Il vaut mieux utiliser un champ au format DATE.

Grafikart
Réponse acceptée

Solution 2 perso, la solution 1 est mieux en terme de stockage mais si tu fais bcp de lectures elle va te coûter cher en calcul.

tbm
Auteur

Merci à vous deux pour vos réponses :D
Je vais mettre en place la solution 2.

Une de mes professeurs m'avait aussi conseillé la 2ème solution pour un cas similaire il y'a un moment mais je n'étais pas sûr. Merci de m'avoir aidé en tout cas.