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

Schéma Discussion :

Many to one et one to many


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Many to one et one to many
    Bonjour à tous
    Je suis débutant donc désolé pour le niveau des questions. J’ai cherché des réponses sur le forum et sur google mais je n’ai pas bien saisi les réponses.
    Je dois faire une base de données sous MySQL multi tables avec des relations one-to-many et many-to-one.
    Je fais une DB sur un data center donc j’ai plusieurs host (valeur unique je pense en faire une KEY) sur chaque host plusieurs Guest (c’est la relation one-to-many) et dans chaque guest plusieurs clients (c’est la relation many-to-one)
    Je voudrais faire 4 tables
    1. Host (key) et (DC le nom du data center)
    2. Guest (key) et RAM, CPU, disk space …
    3. Host (Foreign key) et Guest (foreign key)
    4. Customer name, customer contact … et guest (foreign key)
    Donc, tout d’abord est ce que mon idée est bonne ou pas ? deuxeimement je ne vois pas biens comment créer ce type de table avec des foreign keys.
    Merci par avance
    Benjamin

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Commence par écrire des règles de gestion claires. Déduis-en le MCD puis les tables.

    Dans ton cas, voici le genre de règle de gestion à écrire :
    Un host peut avoir plusieurs guests et un guest n'est attaché qu'à un seul host.

    Ce qui donne le morceau de MCD suivant :
    host -0,n----attacher----1,1- guest

    Et on en déduit les tables suivantes :
    host (hst_id, hst_reference...)
    guest (gst_id, gst_id_host, gst_reference, gst_ram, gst_cpu...)

    Tu remarqueras que j'ai ajouté une colonne xxx_id qui est l'identifiant de la table et constitue sa clé primaire. C'est une colonne de type entier et auto-incrémentée.
    Dans la colonne xxx_reference se trouve le code de nomenclature alphanumérique figurant sur l'étiquette collée sur la machine. Il est en effet préférable d'utiliser une clé primaire auto-incrémentée pour les tables issues des entités types du MCD. xxx_reference est une clé alternative qui sera dotée d'un index de type UNIQUE.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Merci
    Merci Beaucoup, je pense avoir compris le principe.
    Je pense qu'a la place xxx_id je vais faire une cle de host et une cle sur guest puis faire une table customer avec des foreign keys

    Code SQL : 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
    Create table AM_Host
    (
                    HOST VARCHAR2(40)
    ,               Data_Center varchar2(10) constraint cnstrnt_dc check (Data_Center in ('DC01','DC02','DC03','DC04','DC05','Amazon','NULL'))
    ,               PRIMARY KEY (HOST)
    )             
     
    Create table AM_Guest
    (
                    Guest VARCHAR2(40)
    ,               IP VARCHAR2(45)
    ,               DNS VARCHAR2(250)
    ,               Ram int(8)
    ,               Threads int(8)
    ,               IP_Backup VARCHAR2(45)
    ,               Product varchar2(60) 
    ,               PRIMARY KEY (Guest)
    )
     
    Create Table AM_customer
    (
                    HOST VARCHAR2(40)
    ,               Guest VARCHAR2(40)
    ,               CUSTOMER_NAME VARCHAR2(250)
    ,               CUSTOMER_CODE VARCHAR2(80)
    ,               SERVER_TYPE VARCHAR2(45)
    ,               STATUS VARCHAR2(45)
    ,               CONTACT_MAILS VARCHAR2(500) 
    ,               NOTE VARCHAR2(250)
    ,               FOREIGN KEY (HOST) REFERENCES AM_Host(HOST)
    ,               FOREIGN KEY (Guest) REFERENCES AM_Guest(Guest)
    )

    Qu'en penses tu?
    Merci encore
    @+

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Qu'en penses tu?
    J'en pense que tu n'as pas dû lire tous les liens que je t'ai donnés !

    Les clés primaires en VARCHAR(40) , c'est le mal !

    Et quand je vois la colonne Data_center, je me dis qu'il faudrait l'externaliser dans une table data_center (dct_id, dct_code...) et mettre une clé étrangère y faisant référence dans la table AM_Host.

    En entrant dans le détail, j'en pense aussi que la taille de certaines colonnes est exagérée !
    Une adresse IP sur 45 caractères, c'est plutôt rare non ?
    Citation Envoyé par Wikipedia
    Une adresse IPv6 est longue de 128 bits, soit 16 octets, contre 32 bits pour IPv4. La notation décimale pointée employée pour les adresses IPv4 (par exemple 172.31.128.1) est abandonnée au profit d'une écriture hexadécimale, où les 8 groupes de 2 octets (16 bits par groupe) sont séparés par un signe deux-points :

    2001:0db8:0000:85a3:0000:0000:ac1f:8001
    2A01:E35:2421:4BE0:CDBC:C04E:A7AB:ECF3
    Si je compte bien, ça fait 39 caractères en IP V6.

    Enfin, sans règle de gestion, impossible de savoir si ton schéma est bon !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Merci je vais repotasser tes liens et je te tiens au courant
    @+

Discussions similaires

  1. Convertir mon Class avec des attributs many to one et one to many to json
    Par souha Ayachi dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 15/04/2015, 13h38
  2. [Web Services] convertir mon Class avec many to one et one to many attributs to json
    Par souha Ayachi dans le forum Spring
    Réponses: 0
    Dernier message: 15/04/2015, 13h34
  3. Mapping NH One to one et many to one
    Par charouel dans le forum C#
    Réponses: 0
    Dernier message: 04/10/2012, 11h27
  4. [MAPPING] one-to-one et many-to-many
    Par Invité dans le forum Hibernate
    Réponses: 10
    Dernier message: 09/03/2010, 14h53
  5. [Hibernate][one-to-one] clé etrangère avec des blancs
    Par seb_fou dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/04/2006, 10h28

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