Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aide création base

13 réponses
Avatar
Mike
Bonjour à tous

je me suis lancé dans la création d'un programme utilisant le couple asp et
access et j'aurais besoin d'aide.

// Que fait l'appli?
En gros, j'essaie de gérer les membres de notre association sportive (des
capoeiristes). L'asso a des structures (qui correspondent à nos différents
clubs) dans le nord, le pas de calais, le centre, la gironde .
Quand un prof de sport se connecte, un prof de Lille par exemple, il a accès
à la liste de tous les membres de la région Nord et il peut effectuer les
opérations classiques(ajout, édition, suppression).

Le schéma existant de ma base est le suivant:

Table club:
CREATE TABLE `club` (
`id_club` varchar(20) NOT NULL,
`nom_club` varchar(100),
`couleur` varchar(10)
/* Clés */
PRIMARY KEY (`id_club`)


Table capoeiriste
CREATE TABLE `capoeiriste` (
`nom_de_capoeriste` varchar(20) CHARACTER SET `latin1` NOT NULL,
`club_id_club` varchar(20) CHARACTER SET `latin1` NOT NULL,
`grade_id_grade` int(10) UNSIGNED NOT NULL,
`nom` varchar(100) CHARACTER SET `latin1`,
`prenom` varchar(100) CHARACTER SET `latin1`,
`date_naissance` date,
`ville` varchar(100) CHARACTER SET `latin1`,
`code_postal` varchar(5) CHARACTER SET `latin1`,
`rue` varchar(200) CHARACTER SET `latin1`,
/* Clés */
PRIMARY KEY (`nom_de_capoeriste`)


CREATE TABLE `professeur` (
`id_professeur` int(5) AUTO_INCREMENT NOT NULL,
`nom` varchar(100),
`prenom` varchar(100),
`login` varchar(20),
`mdp` varchar(100),
`type` varchar(1) NOT NULL,
`id_club` varchar(20) NOT NULL,
/* Clés */
PRIMARY KEY (`id_professeur`)


Le champ `id_club` de la table club est en fait un code que l'on a choisi
pour chaque région.

//Problème
Avec cette configuration, quand notre prof de lille se connecte, il a
accès à la liste de tous les membres de la région Nord-Pas de Calias. Il voit
donc la même chose que le prof d'Amiens, d'Arras ou encore de celui de Lens.
On a donc un schéma de ce type pour l'affichage de la liste des membres:
Appel Afficher_liste --->User connecté--->rattachement au Nord Pas de
Calais--->liste des membtres du Nord Pas de Calais

J'ai donc eu l'idé d'ajouter deux nouveaux champs:
un champ `ville` qui fait référence à la ville ou enseigne le prof et un
champ `groupe` car les profs de notre association n'appartiennent pas tous au
même groupe de capoeira.
Le truc c'est que dans mon fichier excel ou j'ai tout rescensé j'ai ceci:

Ville | Groupe
Lille Nacao Palmares
Lille Capoeira Brasil
Lille Senzala
Amiens Nacao Palmares
Bordeaux Nacao Palmares
Bordeaux Sapoeira Sul da Bahia
...

et donc ce que je veux c'est que lorsqu'un professeur se connecte qu'il soit
automatiquement rattaché à sa ville et ne voit que les membres de son groupe.


//Question
1)je ne sais pas si je dois reconstruire toute ma base; ce qui m'embeterait
vu tout le boulot que j'ai déja fait en programmation asp.
2)j'ai pensé que je pouvais rajouté les champs ville et groupe, tous les
endroits ou j'ai un champ id_club
3)ou alors crée une autre table qui contiendrait le code de la région
id_club ainsi que les deux nouveaux champs: ville et groupe.
4)autre ???

Pouvez m'éclairer sur ce sujet, que je choisisse la meilleure voie. On a
pour l'instant environ 550 membres et on aura jamais 10fois plus, lol, donc
on est pas obligé que le schéma de la base soit optimisé

Voila
Si quelqu'un pouvait m'aider, se serait sympa
Merci

10 réponses

1 2
Avatar
Michel__D
Bonjour,

"Mike" a écrit dans le message de news:
Bonjour à tous

je me suis lancé dans la création d'un programme utilisant le couple asp et
access et j'aurais besoin d'aide.

// Que fait l'appli?
En gros, j'essaie de gérer les membres de notre association sportive (des
capoeiristes). L'asso a des structures (qui correspondent à nos différents
clubs) dans le nord, le pas de calais, le centre, la gironde .
Quand un prof de sport se connecte, un prof de Lille par exemple, il a accès
à la liste de tous les membres de la région Nord et il peut effectuer les
opérations classiques(ajout, édition, suppression).

Le schéma existant de ma base est le suivant:

Table club:
CREATE TABLE `club` (
`id_club` varchar(20) NOT NULL,
`nom_club` varchar(100),
`couleur` varchar(10)
/* Clés */
PRIMARY KEY (`id_club`)


Table capoeiriste
CREATE TABLE `capoeiriste` (
`nom_de_capoeriste` varchar(20) CHARACTER SET `latin1` NOT NULL,
`club_id_club` varchar(20) CHARACTER SET `latin1` NOT NULL,
`grade_id_grade` int(10) UNSIGNED NOT NULL,
`nom` varchar(100) CHARACTER SET `latin1`,
`prenom` varchar(100) CHARACTER SET `latin1`,
`date_naissance` date,
`ville` varchar(100) CHARACTER SET `latin1`,
`code_postal` varchar(5) CHARACTER SET `latin1`,
`rue` varchar(200) CHARACTER SET `latin1`,
/* Clés */
PRIMARY KEY (`nom_de_capoeriste`)


CREATE TABLE `professeur` (
`id_professeur` int(5) AUTO_INCREMENT NOT NULL,
`nom` varchar(100),
`prenom` varchar(100),
`login` varchar(20),
`mdp` varchar(100),
`type` varchar(1) NOT NULL,
`id_club` varchar(20) NOT NULL,
/* Clés */
PRIMARY KEY (`id_professeur`)


Le champ `id_club` de la table club est en fait un code que l'on a choisi
pour chaque région.

//Problème
Avec cette configuration, quand notre prof de lille se connecte, il a
accès à la liste de tous les membres de la région Nord-Pas de Calias. Il voit
donc la même chose que le prof d'Amiens, d'Arras ou encore de celui de Lens.
On a donc un schéma de ce type pour l'affichage de la liste des membres:
Appel Afficher_liste --->User connecté--->rattachement au Nord Pas de
Calais--->liste des membtres du Nord Pas de Calais

J'ai donc eu l'idé d'ajouter deux nouveaux champs:
un champ `ville` qui fait référence à la ville ou enseigne le prof et un
champ `groupe` car les profs de notre association n'appartiennent pas tous au
même groupe de capoeira.
Le truc c'est que dans mon fichier excel ou j'ai tout rescensé j'ai ceci:

Ville | Groupe
Lille Nacao Palmares
Lille Capoeira Brasil
Lille Senzala
Amiens Nacao Palmares
Bordeaux Nacao Palmares
Bordeaux Sapoeira Sul da Bahia
...

et donc ce que je veux c'est que lorsqu'un professeur se connecte qu'il soit
automatiquement rattaché à sa ville et ne voit que les membres de son groupe.


//Question
1)je ne sais pas si je dois reconstruire toute ma base; ce qui m'embeterait
vu tout le boulot que j'ai déja fait en programmation asp.
2)j'ai pensé que je pouvais rajouté les champs ville et groupe, tous les
endroits ou j'ai un champ id_club
3)ou alors crée une autre table qui contiendrait le code de la région
id_club ainsi que les deux nouveaux champs: ville et groupe.
4)autre ???

Pouvez m'éclairer sur ce sujet, que je choisisse la meilleure voie. On a
pour l'instant environ 550 membres et on aura jamais 10fois plus, lol, donc
on est pas obligé que le schéma de la base soit optimisé

Voila
Si quelqu'un pouvait m'aider, se serait sympa
Merci



Tu peux rajouter le champ [id_professeur] au niveau de la table `capoeiriste`
en relation avec [id_professeur] de la table `professeur` et rajouter les champs
[ville] et [groupe] au niveau de la table `professeur`.
Avatar
Hervé DUCARNE
"Mike" a écrit dans le message de news:
Bonjour à tous

je me suis lancé dans la création d'un programme utilisant le couple asp et
access et j'aurais besoin d'aide.

// Que fait l'appli?
En gros, j'essaie de gérer les membres de notre association sportive (des
capoeiristes). L'asso a des structures (qui correspondent à nos différents
clubs) dans le nord, le pas de calais, le centre, la gironde .
Quand un prof de sport se connecte, un prof de Lille par exemple, il a accès
à la liste de tous les membres de la région Nord et il peut effectuer les
opérations classiques(ajout, édition, suppression).

Le schéma existant de ma base est le suivant:

Table club:
CREATE TABLE `club` (
`id_club` varchar(20) NOT NULL,
`nom_club` varchar(100),
`couleur` varchar(10)
/* Clés */
PRIMARY KEY (`id_club`)


Table capoeiriste
CREATE TABLE `capoeiriste` (
`nom_de_capoeriste` varchar(20) CHARACTER SET `latin1` NOT NULL,
`club_id_club` varchar(20) CHARACTER SET `latin1` NOT NULL,
`grade_id_grade` int(10) UNSIGNED NOT NULL,
`nom` varchar(100) CHARACTER SET `latin1`,
`prenom` varchar(100) CHARACTER SET `latin1`,
`date_naissance` date,
`ville` varchar(100) CHARACTER SET `latin1`,
`code_postal` varchar(5) CHARACTER SET `latin1`,
`rue` varchar(200) CHARACTER SET `latin1`,
/* Clés */
PRIMARY KEY (`nom_de_capoeriste`)


CREATE TABLE `professeur` (
`id_professeur` int(5) AUTO_INCREMENT NOT NULL,
`nom` varchar(100),
`prenom` varchar(100),
`login` varchar(20),
`mdp` varchar(100),
`type` varchar(1) NOT NULL,
`id_club` varchar(20) NOT NULL,
/* Clés */
PRIMARY KEY (`id_professeur`)


Le champ `id_club` de la table club est en fait un code que l'on a choisi
pour chaque région.

//Problème
Avec cette configuration, quand notre prof de lille se connecte, il a
accès à la liste de tous les membres de la région Nord-Pas de Calias. Il voit
donc la même chose que le prof d'Amiens, d'Arras ou encore de celui de Lens.
On a donc un schéma de ce type pour l'affichage de la liste des membres:
Appel Afficher_liste --->User connecté--->rattachement au Nord Pas de
Calais--->liste des membtres du Nord Pas de Calais

J'ai donc eu l'idé d'ajouter deux nouveaux champs:
un champ `ville` qui fait référence à la ville ou enseigne le prof et un
champ `groupe` car les profs de notre association n'appartiennent pas tous au
même groupe de capoeira.
Le truc c'est que dans mon fichier excel ou j'ai tout rescensé j'ai ceci:

Ville | Groupe
Lille Nacao Palmares
Lille Capoeira Brasil
Lille Senzala
Amiens Nacao Palmares
Bordeaux Nacao Palmares
Bordeaux Sapoeira Sul da Bahia
...

et donc ce que je veux c'est que lorsqu'un professeur se connecte qu'il soit
automatiquement rattaché à sa ville et ne voit que les membres de son groupe.


//Question
1)je ne sais pas si je dois reconstruire toute ma base; ce qui m'embeterait
vu tout le boulot que j'ai déja fait en programmation asp.
2)j'ai pensé que je pouvais rajouté les champs ville et groupe, tous les
endroits ou j'ai un champ id_club
3)ou alors crée une autre table qui contiendrait le code de la région
id_club ainsi que les deux nouveaux champs: ville et groupe.
4)autre ???

Pouvez m'éclairer sur ce sujet, que je choisisse la meilleure voie. On a
pour l'instant environ 550 membres et on aura jamais 10fois plus, lol, donc
on est pas obligé que le schéma de la base soit optimisé

Voila
Si quelqu'un pouvait m'aider, se serait sympa
Merci







Salut,

Première chose :
La clé primaire de ta table capoeriste est le nom de famille ?????????????? Donc des frères ou des homonymes ne pourront s'inscrire, t'es vache !!!
Je créerai une table GROUPE (id_groupe, libelle_groupe) et un champ VILLE à ta table club ne devrait pas lui faire de mal lol.
Ensuite, je mettrai id_groupe en clé externe aux tables professeur et copoeiriste.

Après, ça devrait aller net'ment mieux.

A+

--
RV
Avatar
Dragan
Bonjour Mike,
je note que tu as écris : "Le champ `id_club` de la table club est en fait
un code que l'on a choisi pour chaque région." Et que ce champ fait 20
caractères.
Pourquoi ne pas indiquer par ce champ le code postal de la ville + un
indice du groupe. 8 caractères suffisent pour identifier chaque groupe. 3
caratères permettent d'avoir 999 groupes par ville; reste 12 caractères pour
identifier
une région, une ligue, une fédération .....

Ex:
Lille Nacao Palmares =>ID_CLUBY000 001
xxxxxxxxxxxx
Lille Capoeira Brasil =>ID_CLUBY000 002
Lille Senzala => ID_CLUBY000 003
Avatar
Mike
Salut
Merci pour vos réponses.
J'ai pris le temps de les analyser (entre deux cours de chimie c'est pas
toujours évident).

Les deux premières ont un peu plus retenu mon attention car elles reprennent
l'ensemble des idées que j'ai eu.

Voici mes observations:

@Hervé DUCARNE
Le champs nom_capoeriste n'est pas le nom du membre mais un surnom brésilien
qu'on lui donne, et si jamais le nom existe déja dans la base, j'ai fait une
procédure qui lui concatène son vrai nom et prénom

@Hervé DUCARNE +Michel__D +Dragan
J'aime bien les idées proposées.
En y réfléchissant un peu plus, je me suis rendu compte d'un truc:
On peut avoir des professeurs différents pour un même cours de capoeira.
Donc je pense que l'option à choisir serait plus celle de Hervé DUCARNE.

Dites moi si avec cette nouvelle information, j'opte bien pour la bonne
solution car je dois vous avouer que j'ai vraiment un peu de mal des fois
pour programmmer tout ça.

Si je veux faire un select avec cette solution ma requête va être super
compliquée on dirait?

Merci pour votre aide
mike
Avatar
Dragan
"Mike" a écrit :
Salut
Merci pour vos réponses.
J'ai pris le temps de les analyser (entre deux cours de chimie c'est pas
toujours évident).

Les deux premières ont un peu plus retenu mon attention car elles reprennent
l'ensemble des idées que j'ai eu.



Ah ?! Je préfère très nettement la mienne. Ce n'est que mon humbe avis.
Avatar
Mike
Re

Ton idée me semblait intéressante également mais elle me parait plus
compliquée à mettre en œuvre si je tiens compte du fait que l'on puisse avoir
deux professeur pour un même cours.


"Dragan" wrote:

"Mike" a écrit :
> Salut
> Merci pour vos réponses.
> J'ai pris le temps de les analyser (entre deux cours de chimie c'est pas
> toujours évident).
>
> Les deux premières ont un peu plus retenu mon attention car elles reprennent
> l'ensemble des idées que j'ai eu.

Ah ?! Je préfère très nettement la mienne. Ce n'est que mon humbe avis.



Avatar
Mike
Euh, non, suis je bête!!

C'est vrai que cette soluce peut faire l'affaire. Mais si je fais comme
cela, je suis obligé d'avoir une table supplémentaire qui contiendrait le nom
des villes et des groupes reliés entre eux pour pouvoir ajouter des
professeurs.
Faut que je réfléchisse un peu plus.
N'étant pas informaticien je n'ai pas trop la logique des bases de données.
merci
mike

"Dragan" wrote:

"Mike" a écrit :
> Salut
> Merci pour vos réponses.
> J'ai pris le temps de les analyser (entre deux cours de chimie c'est pas
> toujours évident).
>
> Les deux premières ont un peu plus retenu mon attention car elles reprennent
> l'ensemble des idées que j'ai eu.

Ah ?! Je préfère très nettement la mienne. Ce n'est que mon humbe avis.



Avatar
Dragan
Heu en fait tu as écrit que tu identifies les clubs par région aujourd'hui;
tu ne peux donc pas avoir plus de clubs que de régions. Or puisqu'il n'existe
que 22 régions en France, 2 caractères sur les 20 dont dispose le champ
ID_CLUB suffisent à identifier une région et donc un club; + 5 caractéres
pour le code postal de la ville + 2 (ou 3) caractères pour l'indice du
groupe; en tout tu consommes 9 caractères sur les 20 pour identifier un club,
une ville, un groupe et ce sans devoir modifier tes tables.
Ainsi le champ ID_CLUB de la table professeur identifie le club, la ville,
le groupe en se connectant les professeurs ne voient plus que les membres de
leur groupe. Tu dois en fait définir une nomenclature pour le champ ID_CLUB
Ex: ID_CLUB= cc_ppppp_gg où
cc => 2 caractères n° de région
ppppp => 5 caractères code postal ville
gg => 2 caractèrs indice du groupe (99 groupes par ville)
Il reste encore 11 caractères de libre.

dans la table club tu peux juste ajouter un champ pour le nom du groupe.



"Mike" a écrit :

Euh, non, suis je bête!!

C'est vrai que cette soluce peut faire l'affaire. Mais si je fais comme
cela, je suis obligé d'avoir une table supplémentaire qui contiendrait le nom
des villes et des groupes reliés entre eux pour pouvoir ajouter des
professeurs.
Faut que je réfléchisse un peu plus.
N'étant pas informaticien je n'ai pas trop la logique des bases de données.
merci
mike

"Dragan" wrote:

> "Mike" a écrit :
> > Salut
> > Merci pour vos réponses.
> > J'ai pris le temps de les analyser (entre deux cours de chimie c'est pas
> > toujours évident).
> >
> > Les deux premières ont un peu plus retenu mon attention car elles reprennent
> > l'ensemble des idées que j'ai eu.
>
> Ah ?! Je préfère très nettement la mienne. Ce n'est que mon humbe avis.
>


Avatar
Hervé DUCARNE
"Mike" a écrit dans le message de news:
Salut
Merci pour vos réponses.
J'ai pris le temps de les analyser (entre deux cours de chimie c'est pas
toujours évident).

Les deux premières ont un peu plus retenu mon attention car elles reprennent
l'ensemble des idées que j'ai eu.

Voici mes observations:

@Hervé DUCARNE
Le champs nom_capoeriste n'est pas le nom du membre mais un surnom brésilien
qu'on lui donne, et si jamais le nom existe déja dans la base, j'ai fait une
procédure qui lui concatène son vrai nom et prénom

@Hervé DUCARNE +Michel__D +Dragan
J'aime bien les idées proposées.
En y réfléchissant un peu plus, je me suis rendu compte d'un truc:
On peut avoir des professeurs différents pour un même cours de capoeira.
Donc je pense que l'option à choisir serait plus celle de Hervé DUCARNE.

Dites moi si avec cette nouvelle information, j'opte bien pour la bonne
solution car je dois vous avouer que j'ai vraiment un peu de mal des fois
pour programmmer tout ça.

Si je veux faire un select avec cette solution ma requête va être super
compliquée on dirait?

Merci pour votre aide
mike





Salut,

Un cours peut avoir plusieurs prof et un prof peut-il donner des cours différents ?

Un copoeriste, peut il suivre plusieurs cours ? A t'il toujours le même prof ?

A+


--
RV
Avatar
Mike
"Hervé DUCARNE" wrote:

Salut,

Un cours peut avoir plusieurs prof et un prof peut-il donner des cours différents ?
Un copoeriste, peut il suivre plusieurs cours ? A t'il toujours le même prof ?



Salut,
Je me suis trompé quand j'ai dit qu'un cours pouvait avoir plusieurs
professeurs. En fait on a un professeur pour un cours.
Ensuite, on a des fois un Mestre (c'est un maitre: un professeur de pllus
haut grade) ou un contra_mestre (juste un niveau sous le mestre) qui peuvent
donner des cours.

Pour continuer mon programme, j'ai continué avec les conseils de Dragan, et
à ce propos j'ai une question:

Si on a le prof de naçao palmares capoeira de lille qui veut voir tous ces
élèves.
Voici ce que j'ai fait:
Quand il se connecte, j'ai stocké son code_club dans une variable session
le code club est :nord_lille_nacaopal
et je fait la requete suivante:
SELECT * FROM capoeiriste WHERE capoeiriste.club_id_club='code_club' ORDER
BY nom

maintenant, je veux qu'un contra-mestre puisse voir la liste de tous les
élèves du nord et de lille(quelque soit le groupe des élèves)
Pour ce faire j'ai crée une table contra_mestre
On a donc par exemple pour:
-le champs identifiant : contra_mestre Maodeonca
-le champ couverture : nord_lille

Est ce que quelqu'un peut me dire si avec la nomenclature utilisée
(nord_lille et nord_lille_nacaopal) s'il est possible d'obtenir le résultat
de la requete en utilisant les fonctions propres à sql (c'est à dire sans
passer par des bidouilles de programmation sur les chaines de caractères),
svp?

Merci
1 2