IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Conception d'une base de données


Sujet :

Administration MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2019
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Conception d'une base de données
    bonjour a tous, j'ai un souci celui de la base de donnée qui sera présenté toute de suite : en faite je l'ai créer mais le souci c'est que cela m'affiche que trois tables enregistrer, le reste cela me dit que je ne peux pas additionner les clé étrangères........ Vue cela j'ai supprimé les tables a nouveau et importé le fichier dans l'invite de commande via la commande source mais c'est toujours la même chose que sa donne : sa enregistre que trois tables


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    /*CREATION DE LA BASE DE DONNE BD_ENSEIGNEMENT*/
     
    /*drop database is exists BD_ENSEIGNEMENT;
    create database BD_ENSEIGNEMENT;*/
     
    /* L'UTILISATION DE LA BASE DE DONNE BD_ENSEIGNEMENT*/
    use BD_ENSEIGNEMENT;
     
     
    /* CREATION DE LA TABLE CLASSE*/
    drop table if exists classe;
    create table classe
    	(
    		CodClas		varchar(5),
    		LibClas		varchar(20)
    	)ENGINE = InnoDB, CHARSET = utf8;
     
    /* CREATION DE LA TABLE ELEVE*/
    drop table if exists eleve;
    create table eleve
    	(
    		NumElev 	int(4) not null auto_increment,
    		NomElev 	varchar(20),
    		PrenElev 	varchar(20),
    		DateElev 	date,
    		AdrElev 	varchar(25),
    		TelElev 	varchar(8),
    		CodClas		varchar(5),
    		constraint pk_eleve primary key (NumElev),
    		constraint fk_classe foreign key (CodClas) references classe(CodClas)
    	)ENGINE=InnoDB, CHARSET=utf8;
     
     
    /*CREATION DE LA TABLE MATIERE*/
    drop table if exists matiere;
    create table matiere
    	(
    		CodMat		int(5) primary key,
    		LibMat		varchar(20)
    	)ENGINE = InnoDB, CHARSET = utf8;
     
     
     
    /* CREATION DE LA TABLE ENSEIGNANT*/
    drop table if exists enseignant;
    create table enseignant
    	(
    		CinEns		int(8),
    		NomEns		varchar(20),
    		PrenEns		varchar(20),
    		TelEns		varchar(8),
    		AdrEns		varchar(25),
    		CodMat		int(5),
    		constraint pk_ens primary key (CinEns),
    		constraint fk_mat foreign key (CodMat)references matiere(CodMat)
    	)ENGINE = InnoDB, CHARSET = utf8;
     
     
    /*	CREATION DE LA TABLE SEANCE */
    drop table if exists seance;
    create table seance
    	(
    		NumSea		int(5),
    		DurSea		int(2),
    		JourSea		varchar(10),
    		HeurDebSea	varchar(5),
    		CodClas		int(5),
    		CinEns		int(8),
    		constraint pk_sea primary key (NumSea),
    		constraint fk_clas foreign key (CodClas)references classe(CodClas),
    		constraint fk_enseig foreign key (CinEns)references enseignant(CinEns)
    	)ENGINE = InnoDB, CHARSET = utf8;
     
     
    /* CREATION DE LA TABLE ABSENCE */
    drop table if exists absence;
    create table absence
    	(
    		NumElev		int(4),
    		NumSea		int(2),
    		constraint fk_elev foreign key(NumElev)references eleve(NumElev),
    		constraint fk_sea foreign key(NumSea)references seance(NumSea)
    	)ENGINE = InnoDB, CHARSET = utf8;

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Bonsoir,

    Je pense qu'il faut déjà passer tous les drop table
    mais en commençant par le "bas"
    En effet la table classe soit être la dernière à disparaître par rapport aux contraintes s'il y
    avait déjà des tables existantes ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    drop table if exists absence;
    drop table if exists seance;
    ... 
    drop table if exists classe;
    Puis passer les create dans l'ordre du script ...
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Votre base de données est très mal modélisée, avant de se lancer dans le script "CREATE TABLE" il faut réfléchir sur le papier à l'articulation des types d'entités entre elles.

    Par exemple, tel que vous avez modélisé la table ENSEIGNANT avec une FK qui va vers MATIERE, vous ne pouvez pas avoir d'enseignant qui enseigne plusieurs matières. Est-ce vraiment conforme à vos règles de gestion ?
    N'avez vous pas de professeur d'histoire et géographie ou de français et latin pour ne citer que quelques exemples ?

    De plus, vos tables CLASSE et MATIERE ne possèdent aucune PK

    Certains attributs sont mal modélisés, l'adresse par exemple est normalisée par pays. En france c'est 6 fois 38 caractères. Vérifiez la norme de votre pays, mais une seule ligne pour l'adresse ne saurait suffire.

    Enfin, le choix des types de données est inadapté, si vous n'avez besoin que d'un identifiant court, choisissez smallinteger et non pas integer(4) ou integer(5), et pour les données de type caractère, utiliser du char plutôt que du varchar, pour des données de longueur courte et peu variable, tel que le numéro de téléphone par exemple.

    Pour répondre directement à votre question, commencez par mettre des PK sur toutes vos tables, ainsi vos contraintes FK pourront fonctionner

    Mais avant tout, vous devriez télécharger un logiciel gratuit de modélisation et commencer par le commencement en demandant des conseils sur le forum consacré à la modélisation qui se trouve ici

Discussions similaires

  1. [Conception] Connexion à une base de données
    Par delmimi dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 14/02/2007, 13h15
  2. Conception d'une base de données
    Par yousron dans le forum Modélisation
    Réponses: 7
    Dernier message: 22/11/2006, 12h06
  3. [Conception] Connexion à une base de données AS400
    Par mirc00 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/07/2006, 22h27
  4. Conception d'une base de données
    Par petitloup71 dans le forum Modélisation
    Réponses: 6
    Dernier message: 07/07/2006, 17h08
  5. [Conception] Modifier une base de données
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/06/2006, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo