|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Bonjour à tous, j'ai juste une question sur les clés primaires et le type suivant le cas de figure.
Je ne vous cache pas que je suis très attentif concernant les performances mais également le côté pratique. J'ai une table qui va contenir une trace de chaque action émise par des membres cette table est donc pseudo temporaire étant qu'elle sera vidé de temps à autres. Dans ce cas l'utilisation d'un identifiant numérique auto incrémenter n'est pas l'idéal. En gros chaque membre peut supprimer une entrée, ou plusieurs de son gestionnaire d'action mais peut également le vider entièrement sans oublier que l'administrateur vide cette espace de temps en temps. Donc ma question l'utilisation d'un type varchar pour la clé primaire de ses entrée est elle une bonne idée sachant que le numérique est de toute façon plus rapide. En gros je vais générer de manière aléatoire de longue clé alphanumérique (30 caractères) pour être certain de limité la casse sur le côté unique de la clé. Un peu de ce style : f1be90a92604482a84d87d600b66ace8
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
|
|
#2 | |||||
![]() ![]() |
Citation:
Citation:
Citation:
Voir l'article de SQLPro sur ce qu'est une bonne clé. Citation:
![]() Je reprends le début de la première phrase citée : Citation:
membre -0,n----Effectuer----0,n- action date -0,n---------------| Ce qui génère, par exemple, les tables suivantes : membre_mbr (mbr_id, mbr_nom...) action_act (act_id, act_libelle...) mbr_effectuer_act_mea (mea_id_membre, mea_id_action, mea_date...) => La clé primaire est alors double colonnes, chaque colonne n'ayant jamais une valeur supérieure au nombre de membres ou d'actions maximum. Si chaque action enregistrée n'est associée qu'à un seul utilisateur, tu as ce MCD : membre -0,n----Effectuer----1,1- action Ce qui génère, par exemple, les tables suivantes : membre_mbr (mbr_id, mbr_nom...) action_act (act_id, act_id_membre, act_libelle, act_date...) => Cette fois il peut y a voir à long terme un act_id très grand si tu as beaucoup de membres qui font beaucoup d'actions. mais encore une fois, avant d'arriver à 9 milliards de milliards d'actions enregistrées avec un BIGINT, je penses que tu as le temps ! Et si tu crains de ne pas en avoir assez, avec un UNSIGNED BIGINT, ça te fait 18 milliards de milliards !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||||
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Ok ok, merci cinePhil
En gros un bon vieux int, ... avec un auto incrément fera l'affaire. J'ai été assez perturber en fouillant sur le net suivant le sujet des clé primaire assez contradictoire sans pour autant avoir une réponse clair au niveau des perf Je vais revoir ma structure et adapter mon système de clé : f1be90a92604482a84d87d600b66ace8 Pour tout à fait autre chose, pourquoi pas une clé API ![]() J'ai répondu en privée concernant ta question sur zend jquery
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
|
|
#4 |
![]() ![]() |
Qu'appelles-tu une "clé API" ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Ben je cherchais le moyen d'avoir des clés primaire bien optimisé ou du moins d'avoir un complément d'explication.
Mais je devais implanter dans un tout autre contexte un système de clé d'API pour les membres ayant la possibilité d'utiliser des portions de scripts dans leurs site (un simple champs varchar dans la table). Je travail sur plusieurs plate forme pour le moment qui vont utiliser ce genre de système
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
Copyright © 2000-2012 - www.developpez.com