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

MS SQL Server Discussion :

petit souci create deux tables sql serveur


Sujet :

MS SQL Server

  1. #1
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 1 025
    Points : 853
    Points
    853
    Par défaut petit souci create deux tables sql serveur
    Bonjour a tous. Je veux organiser des membres dans une organisation.

    J'ai 2 tables Membres et TypesMembres.

    TypesMembres est la derniere colonne de la premiere table Membres.
    TypesMembres peut avoir deux valeurs PersonnePhysique et PersonneJuridique.

    Je connais la structure de la premiere table car on me l'as donne:

    Membres(IdMembre,Nom,Prenom,Telephone,TypesMembres)


    J'ai cree la premiere table Membres correctement , mais je ne sais pas comment creer la deuxieme qui s'appelle TypesMembres et qui peut avoir 2 valeurs: PersonnePhysique et PersonneJuridique.

    Je ne sais pas comment faire ainsi que la colonne Types Membres peut etre en meme temps colonne de la table Membres et avoir deux valeurs PersonnePhysique et PersonneJuridique car je sais d'avance que j'ai une base des donnes avec 2 tables Membres et TypesMembres.

    Voila ce que j'ai essaie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    -- Contenu du script sql : Application.sql
     
    CREATE DATABASE Application
     
    CREATE TABLE Membres
    (IdMembre int PRIMARY KEY NOT NULL,
    Nom varchar(255),
    Prenom varchar(255),
    Telephone int,
    TypesMembres varchar(255)
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE TypesMembres
    (PersonnePhysique varchar(255),
    PersonneJuridique varchar(255)
    )
     
    -- commentaire : ...? -- mon lieu bloquant c'est table2 TypesMembres
    Ou il faut creer un domaine avec CREATE DOMAIN?

    J'attends votre avis urgent,

    Cordialment,
    Mihai

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 679
    Points : 4 669
    Points
    4 669
    Par défaut
    Bon, déjà c'est pas la peine de mettre 255 car pour nom/prénom

    Idem pour TypeMembre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    CREATE TABLE Membres
    (IdMembre int PRIMARY KEY NOT NULL,
    Nom varchar(50),
    Prenom varchar(50),
    Telephone int,
    TypeMembre varchar(20)
    )
    Ensuite, il ne faut pas faire deux colonnes dans la table TypesMembres mais une colonne

    Après on relie les tables entre elles

    et enfin on insère les valeurs de référence
    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
     
    CREATE TABLE TypesMembres
    (TypeMembre varchar(20) PRIMARY KEY NOT NULL
    )
     
    ALTER TABLE dbo.Membres ADD CONSTRAINT
    	FK_Membres_TypesMembres FOREIGN KEY
    	(
    	TypeMembre
    	) REFERENCES TypesMembres
    	(
    	TypeMembre
    	)
     
    INSERT INTO TypesMembres VALUES('PersonnePhysique')
    INSERT INTO TypesMembres VALUES('PersonneJuridique')


    J'attends votre avis urgent
    Il ne faut pas être trop pressé ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 1 025
    Points : 853
    Points
    853
    Par défaut
    Merci beaucoup pour la reponse.

    Bonne soiree,

    Mihai

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Bon, déjà c'est pas la peine de mettre 255 car pour nom/prénom
    Et monsieur POURROY de L'AUBERIVIERE de QUINSONAS-OUDINOT de REGGIO, tu vas le rentrer comment ?

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 679
    Points : 4 669
    Points
    4 669
    Par défaut
    L'informatique est roturière et dédaigne tout commerce avec les descendants de ceux qui ont été dépossédés du pouvoir en 1789.

    Dans son 1er post mihaispr avait mis :
    TypesMembres varchar(255)
    J'ai surtout voulu attirer son attention sur la structuration "consciente" des colonnes.
    "Car structuration sans conscience n'est que ruine du SGBD" (Rabelais) ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : décembre 2008
    Messages : 1 025
    Points : 853
    Points
    853
    Par défaut
    Oui je savais que ca impliquait la dimension des colonnes string le type varchar dans sql serveur je me suis depeche un peu.

    La deuxieme partie avec foreign key et references m'a interesse en fait.

    Merci encore une fois de m'aider J'apprecie beaucoup ton aide.

    Je ne savais pas qu'on peut faire foreign key a une colonne qui n'est pas cle primaire. Merci de m'aider.

    Cordialment,

    Mihai

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 679
    Points : 4 669
    Points
    4 669
    Par défaut
    Citation Envoyé par mihaispr Voir le message
    Je ne savais pas qu'on peut faire foreign key a une colonne qui n'est pas cle primaire
    C'est même très important :
    Il est souvent nécessaire de contrôler un enregistrement par plusieurs tables de références.

    Par exemple une table "Ventes" (d'une base commerciale) qui enregistre le détail d'une facture va comporter les informations :
    - N° de facture
    - Code article
    - Code Tva

    Cette table "Ventes" peut avoir pour clé primaire une colonne "IdVente" (int)

    Mais ce qui est intéressant pour la fiabilité du système est qu'on va créer 3 tables pour contrôler les ventes :
    - "Factures" : pour les données clients, n° facture, date, ...
    - "Articles" : référentiel du fichier articles de la société
    - "Tva" : liste des codes tva autorisés

    Chaque clé primaire va être reportée dans la table "Ventes" pour garantir la cohérence de l'information
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. [Debian_Etch] Petits soucis de performance sur un serveur
    Par Arnulf dans le forum Administration système
    Réponses: 7
    Dernier message: 22/01/2008, 17h09
  2. Réponses: 2
    Dernier message: 10/07/2007, 07h01
  3. comparaison de deux tables sql
    Par lerab51 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/05/2007, 09h58
  4. Réponses: 3
    Dernier message: 16/01/2007, 17h50
  5. Supprimer une image dans une table SQL Serveur 2000
    Par Soobook dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/09/2006, 17h00

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