OVH Cloud OVH Cloud

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

3 réponses

1 2
Avatar
Michel__D
Bonjour,

"Mike" a écrit dans le message de news:

"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?



A mon avis, la piste que tu semble prendre est semée d'embuches car tu n'as
pas suffisamment réfléchi au problème

En gros, tu n'as pas définit les relations entre les tables car tu ne t'es pas posé
les bonnes questions; soit tu raisonne au niveau du groupe/cours ou soit tu
raisonne au niveau du professeur, bref c'est toi qui sais ce que tu veux faire.
Avatar
Dragan
Bonjour Mike,
dans la clause WHERE tu remplaces le signe "=" par le mot clé LIKE.

Ex:
Pour obtenir tous les groupes d'une région :
WHERE ID_CLUB LIKE 'nord*'

Pour obtenir tous les groupes de lille :
WHERE ID_CLUB LIKE 'nord_lille_*' ou WHERE ID_CLUB LIKE '*_lille_*'

Pour obtenir tous les groupes nacao palmares de tous les clubs:
WHERE ID_CLUB LIKE '*_nacaopal"


"Mike" a écrit :


"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


Avatar
Mike
Super.
Merci beaucoup.
Vous m'avez tous vraiment aidé.

"Dragan" wrote:

Bonjour Mike,
dans la clause WHERE tu remplaces le signe "=" par le mot clé LIKE.

Ex:
Pour obtenir tous les groupes d'une région :
WHERE ID_CLUB LIKE 'nord*'

Pour obtenir tous les groupes de lille :
WHERE ID_CLUB LIKE 'nord_lille_*' ou WHERE ID_CLUB LIKE '*_lille_*'

Pour obtenir tous les groupes nacao palmares de tous les clubs:
WHERE ID_CLUB LIKE '*_nacaopal"


1 2