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 :

Pourquoi ne pas créer une table avec tout les champs ?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Points : 57
    Points
    57
    Par défaut Pourquoi ne pas créer une table avec tout les champs ?
    Bonjour,
    J'ai modifié une base existante qui contenait une seul table avec tout les champs, pour créer plusieurs tables etc...
    mais je cherche une multitude de raisons concernant la question " Pourquoi c'est faux de créer un table contenant tout les champs de la bdd ?"
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Sans plus de précision, difficile de répondre.
    A quoi ressemble cette table?

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    " Pourquoi c'est faux de créer un table contenant tout les champs de la bdd ?"
    Cela s'appelle un tableau Excel

    Prenons le cas d'une commande et de ses lignes de commandes, tu aurais avec ta solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdCommande	DateCommande	NomClient	PrenomClient	AdresseClient	CPClient	VilleClient	TelClient	IdProduit	NomProduit	PrixProduit	Qte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1	17/10/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	1	Vis diam 10	1	3
    1	17/20/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	2	Vis diam 8	0,8	10
    1	18/10/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	3	Vis diam 6	0,6	3
    1	17/20/2009	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	4	Vis diam 4	0,4	2
    1	19/10/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	5	Vis diam 5	0,5	1
    1	17/10/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	10	Rondelle diam 10	1	3
    1	17/20/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	11	Rondelle diam 8	0,8	10
    1	18/10/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	12	Rondelle diam 6	0,6	3
    1	17/20/2009	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	13	Rondelle diam 4	0,4	2
    1	19/10/2008	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx	14	Rondelle diam 5	0,5	1
    120 cellules !

    Alors qu'avec une vraie base de données :

    Une table client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IdClient	NomClient	PrenomClient	AdresseClient	CPCLient	VilleClient	TelClient
    1	DUPOND	Jean	Chez lui	71000	MACON	xxxxxx
    Une table Produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    IdProduit	NomProduit	PrixProduit
    1	Vis diam 10	1
    2	Vis diam 8	0,8
    3	Vis diam 6	0,6
    4	Vis diam 4	0,4
    5	Vis diam 5	0,5
    10	Rondelle diam 10	1
    11	Rondelle diam 8	0,8
    12	Rondelle diam 6	0,6
    13	Rondelle diam 4	0,4
    14	Rondelle diam 5	0,5
    Une table Commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IdCommande	DateCommande	IdClient
    1	17/10/2008	1
    Une table ligne commande :

    IdCommande IdProduit Qte
    1 1 3
    1 2 10
    1 3 3
    1 4 2
    1 5 1
    1 10 3
    1 11 10
    1 12 3
    1 13 2
    1 14 1
    70 "cellules"

    Donc déjà niveau stockage c'est mieux.

    Et si en plus on veux établir le nombre de commandes passées, il suffit de lire la table commande. Dans un tableau, il faut consulter l'ensemble des données : client, produits, etc. Alors que ces données ne sont pas utiles au moment présent.

    Là dessus vient encore s'ajouter la cohérence & l'intégritédes données

    Qui te dit que lorsque tu va saisir de nouveau une commande à M Dupond tu ne vas pas écorcher son adresse ?

    Pour toutes ces questions, je ne peux que te conseiller les excellents documents de SQL Pro : sqlpro.developpez.com

  4. #4
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Ça a existé, les bases de données comme ça. C'est globalement abandonné depuis la fin de l'antiquité informatique ^^

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous pouvez aussi mettre en avant les changements de données référentielle.

    Si le marketing publie un nouveau catalogue et que vos "Vis diam 5" s'appellent maintenant "Vis super 5", vous aurez un coût très élevé de mise à jour dans votre table unique.

Discussions similaires

  1. Remplir une table avec toutes les dates de l'année
    Par sialafrere dans le forum WinDev
    Réponses: 6
    Dernier message: 02/05/2008, 16h45
  2. créer une table avec interbase
    Par solidleon dans le forum Bases de données
    Réponses: 3
    Dernier message: 01/11/2006, 15h39
  3. [Conception] Créer une table avec php
    Par freezerhm dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/10/2006, 12h15
  4. Créer une table avec SELECT
    Par eric37 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/08/2006, 00h34

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