Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2011, 17h01   #1
Membre extrêmement actif
 
Avatar de mihaispr
 
Inscription : décembre 2008
Messages : 1 022
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 1 022
Points : 660
Points : 660
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 :
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 :
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
mihaispr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 19h18   #2
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
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 : 851
Points : 1 302
Points : 1 302
Bon, déjà c'est pas la peine de mettre 255 car pour nom/prénom

Idem pour TypeMembre :

Code :
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 :
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')


Citation:
J'attends votre avis urgent
Il ne faut pas être trop pressé ...
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 19h36   #3
Membre extrêmement actif
 
Avatar de mihaispr
 
Inscription : décembre 2008
Messages : 1 022
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 1 022
Points : 660
Points : 660
Merci beaucoup pour la reponse.

Bonne soiree,

Mihai
mihaispr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 20h02   #4
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
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 ?
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 20h48   #5
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
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 : 851
Points : 1 302
Points : 1 302
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 :
Citation:
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) ...
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 20h51   #6
Membre extrêmement actif
 
Avatar de mihaispr
 
Inscription : décembre 2008
Messages : 1 022
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 1 022
Points : 660
Points : 660
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
mihaispr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 22h31   #7
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
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 : 851
Points : 1 302
Points : 1 302
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
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web