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

Requêtes MySQL Discussion :

conseil bdd, est-ce utile un ID ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut conseil bdd, est-ce utile un ID ?
    Bonjour,

    J'essaye de concevoir une bdd, et j'ai pas l'habitude

    A priori, je vais partir sur ceci :
    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
    18
    19
     
    titre          type de données
    ------------------------------------------------
    link		        var char 255		primary key
    enclosure	        var char 255
    title		        var char 255
    description         text
    region	       var char 50
    formation	       var char 50
    contrat		var char 50
    salaire		var char 50
    category	      var char 50
    postal		int 7
    state		      var char 50
    country		var char 50
    tag		       var char 50
    source		var char 50
    geolocalisation	var char 50
    date		       timestamp
    Peut'on mettre une url en primary key ?
    J'ai pas mis d'identifiant, est-ce utile ?

    Merci bcp

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    Oui, les clés numériques sont préférables, pour pleins de raisons (indexation, taille...).
    En tout état de cause, une chaîne de taille variable et potentiellement longue est déconseillée.
    Mieux vaut un identifiant numérique.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre éclairé Avatar de Netek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 57
    Par défaut
    Oui il vaut mieux toujours mettre un ID en auto increment.
    Meme si dans l'immédiat tu penses ne pas en avoir besoin, tu pourrais t'en mordre les doigts plus tard ^^

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Citation Envoyé par ced Voir le message
    Bonjour,

    Oui, les clés numériques sont préférables, pour pleins de raisons (indexation, taille...).
    En tout état de cause, une chaîne de taille variable et potentiellement longue est déconseillée.
    Mieux vaut un identifiant numérique.
    Je vais suivre vos conseils pour l'ID.

    quand tu dit
    <<<
    En tout état de cause, une chaîne de taille variable et potentiellement longue est déconseillée.
    >>>
    Cela vaut pour pour le link que j'ai mis en primary key ?
    Mon but est de récupérer des news via des flux RSS, et je ne veut pas avoir 2 fois la même news, comment faire ???
    J'avais pensé au "title" ou "date", mais je peut tout a fait retrouver les mêmes dans des news différentes

  5. #5
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Bonjour

    Peut'on mettre une url en primary key ?
    Qu'est-ce qui t'en empêche ?

    et je ne veut pas avoir 2 fois la même news, comment faire ???
    Mettre un cle primaire !

    quand tu dit
    <<<
    En tout état de cause, une chaîne de taille variable et potentiellement longue est déconseillée.
    >>>
    Cela vaut pour pour le link que j'ai mis en primary key ?
    Oui, c'est ce que ça veut dire. Si ton Appli reçoit un grand nombre de visiteurs (2000, 10000, 1 000 000, soyons fous ), cela peut impacter les performances de manière drastique.

    Oui il vaut mieux toujours mettre un ID en auto increment.
    C'est selon ! Pas plus compliqué pour une BdD d'indexer un id numérique qu'un Id alpha ...


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Ok je vois. Du coup on sais jamais, pour faire attention au côté performance je pense que je vais oublier la clé primaire sur le link.

    Lors de l'insertion en bdd, pour ne pas avoir de doublon,je vais controlé si la news existe déjà via le link :
    Si link existe, j'insère pas, si link n'existe pas j'insère
    Mais imaginons que j'ai 200 000 enregistrement, cela ne risque t'il pas d'impacté mes performances ? Si oui quelq'un a t'il une idée a mon problème ?

  7. #7
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par défaut
    Tu peux aussi indexer également ton champs link (en plus de la clé primaire). Index unique, comme ça, en cas de doublons, une exception sera levée.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  8. #8
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par omelhor Voir le message
    A priori, je vais partir sur ceci :
    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
    18
    19
     
    titre          type de données
    ------------------------------------------------
    link                var char 255        primary key
    enclosure            var char 255
    title                var char 255
    description         text
    region           var char 50
    formation           var char 50
    contrat        var char 50
    salaire        var char 50
    category          var char 50
    postal        int 7
    state              var char 50
    country        var char 50
    tag               var char 50
    source        var char 50
    geolocalisation    var char 50
    date               timestamp
    Peut'on mettre une url en primary key ?
    J'ai pas mis d'identifiant, est-ce utile ?
    Comme l'ont conseillé les autres, pas de chaîne de caractères longue en clé primaire de la table.
    Un article à lire sur les clés auto-incrémentées chez SQLPro.

    Autres remarques...

    Tu auras probablement plusieurs fois la même région avec le risque potentiel qu'une même région soit orthographiée différemment dans deux lignes de la table. Il vaut mieux alors faire une table de référence des régions et ne mettre ici qu'une clé étrangère faisant référence à l'identifiant de la région.

    Idem pour category, state, country et peut-être aussi formation et contrat.

    Un code postal n'est pas un nombre avec lequel on va faire des calculs mais... un code ! En France, les codes postaux sont composés de 5 chiffres, même si le département est inférieur à 10. Si tous tes codes postaux sont français, utilise le type CHAR(5).

    Mon but est de récupérer des news via des flux RSS
    Que viennent alors faire les données relatives à la géolocalisation, au contrat, au salaire ?

    Tu devrais réfléchir de façon plus approfondie à ton modèle de données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/09/2006, 16h00
  2. fonction get_magic_quotes_gpc(), c'est vraiment utile ?
    Par renaudjuif dans le forum Langage
    Réponses: 7
    Dernier message: 21/08/2006, 23h38
  3. tester si un champ de bdd est vide
    Par pekka77 dans le forum ASP
    Réponses: 8
    Dernier message: 28/06/2005, 17h14
  4. Comment peut-on dire : une bdd est petite, moyenne ou grosse
    Par Pierrinot dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 20/10/2004, 09h40
  5. Réponses: 4
    Dernier message: 06/02/2004, 17h23

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