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

Langage SQL Discussion :

Probleme création base de données


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut Probleme création base de données
    Bonjour,

    ne faisant plus de SQL depuis quelque temps déjà, j'ai perdu pas mal de notions

    je dois créer une structure de base de données pour une appli web ou je vais utiliser Hibernate pour gérer la persistence des données.

    Dans ma base, je possède un utilisateur qui possède une adresse. J'ai crée les 2 tables suivantes :

    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
     
     
    CREATE TABLE utilisateur (
    id_utilisateur bigint(18) NOT NULL auto_increment, 
    nom varchar(30), 
    prenom varchar(30), 
    date_de_naissance date, 
    telephone varchar(15), 
    primary key (id_utilisateur));
     
    CREATE TABLE adresse (
    id_adresse bigint(18) NOT NULL auto_increment, 
    adresse_1 varchar(100), 
    adresse_2 varchar(100), 
    code_postal varchar(10), 
    ville varchar(30),
    primary key (id_adresse));
    Si je souhaite que mon utilisateur possède une liste de matériel décrit ci dessous, quels sont les contraintes à ajouter sur ma table?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TABLE materiel (
    id_materiel bigint(18) NOT NULL auto_increment, 
    nom varchar(30),
    categorie varchar(30),
    primary key (id_materiel));
    Merci de votre aide

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    Bonjour,

    la premiere chose à faire, a mon avis, est de créer une autre table qui fait l'association entre l'utilisateur et le matériel dont il dispose. Cette table aurait l'ID utilisateur, et l' ID materiel comme cle etrangere, referencant leur cle primaire dans les table utilisateur et materiel.

    Pour les contraintes cela dépend du contexte, si un utilisateur peut avoir plusieurs fois le meme materiel etc.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Merci de la réponse Mat777, je vais faire ce que tu dis.

    pour les contraintes, il n'y en a pas vraiment

    Par contre, j'ai oublié de poser ma question concernant les deux premières tables : quelle est la syntaxe pour que mon utilisateur possède une adresse et une seule? J'aurais également besoin de connaitre la syntaxe pour que mon utilisateur possède plusieurs adresses (adresse perso, bureau....)??

    Je vous remercie d'avance

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    donc en faitn tu veux que l'utilisateur puisse avoir deux adresses diférentes en fait? c'est ca?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Je veux les deux cas possibles. je bosse sur deux petites appli différentes et sur l'une d'elle, il me faut une seule adresse et sur l'autre, il me faut une ou plusieurs adresses.

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    ok alors voila ce que je propose,

    pour le cas ou il peut avoir plusieurs adresses :


    Faire la table utilisateur,et une table adresses.
    utilisateur(ID_util,nom,prenom,...)
    adresses(#ID_util,adresse_domicile,adresse_travail,...)

    Pour le cas ou il ne peut avoir qu'une seule adresse

    Mettre une contrainte UNIQUE sur la concatenation du nom,prenom.
    Pcq une personne peut avoir le meme nom de famille et une adresse differente etc.

    Ca donnerait un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table utilisateur (
    id_util varchar(2) not null primary key,
    nom char(15) not null,
    prenom char(15) not null,
    adresse char(15) not null,
     
    constraint adresse_unique UNIQUE(nom,prenom));
    Le truc avec ca, c'est que deux utilisateurs avec le meme nom et prenom(assez rare mais possible) ne pourront pas avoir la meme adresse.
    Mais je dois admettre que cette possibilite est assez rare.

    Bien sur ce n'est qu'un ébauche,mais deja une bonne base.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Merci de cette réponse,

    je vais utiliser les deux solutions mais pour la contrainte d'unicité, je vais rajouter des nouveaux champs car l'unicité sur le nom, prénom ne me suffit pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de création base de donnée
    Par nickel59 dans le forum Modélisation
    Réponses: 0
    Dernier message: 03/03/2012, 15h49
  2. Création base de données Oracle sous Winwows
    Par madina dans le forum Oracle
    Réponses: 2
    Dernier message: 19/05/2006, 10h13
  3. Probleme avec base de données et variable !
    Par Sunseeker69 dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/04/2006, 17h39
  4. probleme construction base de donnes MySql...Help
    Par chakan dans le forum Requêtes
    Réponses: 7
    Dernier message: 21/07/2004, 12h27
  5. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 19h50

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