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

 SGBD Discussion :

Comment stocker les données des abonnés


Sujet :

SGBD

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut Comment stocker les données des abonnés
    Bonjour,

    Je vais mettre en place un formulaire d'inscription pour les abonnés à mon site.
    En dehors de leurs informations-texte (type: nom email etc...), il y aura la possibilités d'uploader des images.
    Probablement 3 plus une vignette.

    J'ai pensé à quelques solutions pour classer tout cela.
    1) Un répertoire par abonnés.
    2) Des suffixes genre login_images1.jpg login_images2.jpg etc...
    Ou bien suffit il d'associer le nom de l'image à l'ID de l'abonné...?

    Bref, comme c'est la première fois que je vais faire cela, votre expérience sur ce genre de projet sera intéressante.

    Merci

  2. #2
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Pour ma part je stockerais les images comme des blob dans la base de données.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Bonjour Jester,

    Intéressant cette hypothèse, je ne savais pas que la chose était possible.
    Si je comprends bien, je crée un champs image et c'est le code de l'image qui remplis ce champs.

    Je devine en effet l'avantage même si certains de ces avantages m'échappent peut être encore.
    Concernant les inconvénients, cela ne ralentit il pas les échanges?
    Autre question, il y a sur le Developpez un formulaire intéressant qui permet de vérifier l'extension du fichier uploadé.
    A ton toujours besoin de cette sécurité avec le blob ou le fait que l'image soit enregistrée dans la base évite ces soucis?

  4. #4
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    > Concernant les inconvénients, cela ne ralentit il pas les échanges?

    Je n'ai pas de chiffres, mais pas énormément je pense.

    > A ton toujours besoin de cette sécurité avec le blob ou le fait que l'image soit enregistrée dans la base évite ces soucis?

    Oui.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Merci Jester,

    J'ai été faire un tour sur le net pour voir un peu ce qu'il en est.
    Je ne suis pas sur que cela soit de mon niveau.
    Je me trompe peut être mais j'ai le sentiment qu'il me sera plus facile de stocker les images dans l'arborescence.
    Je lis par exemple que cette dernière solution évite un risque supplémentaire à savoir que toute nouvelle requete ouvre la base et permet les intrusions.

    Et comme je ne sais pas gérer ces aspects là, je préfère éviter.
    Pour le moment en tout cas.

    Donc, sauf avis contraire, je reste sur ma première démarche qui serait de stocker les images dans l'arborescence mais, fichier nominatif ou dossier par abonné?

  6. #6
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    dossier

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/stockerimages/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Salut SQLPro,

    J'ai lu ton article avec intérêt.

    Concernant le système de stockage des photos et dans le cas de mon projet j'avais pensé à ceci:

    Tu évoques le soucis de nommer et de retrouver les fichiers.
    Je me disais qu'en utilisant le login de l'abonné et en créant un répertoire à ce nom, la chose était faite et me simplifiait la vie.
    Exemple:

    Hector3 crée un compte sur mon site, il upload des images (il y en aura 4).
    Un répertoire Hector3 est crée et quand on fait une requete alors ca donne un truc du genre:
    Path= ./img/$login_utilisateur/

    Comme je suis très peu à l'aise avec les base de données, je tache depuis le début de n'avoir qu'une table qui contient tout.
    J'entends déjà des "Rooooo" et des "Quoiiiiiii..???"


    Par exemple, plutôt que de lier la table "utilisateur" avec la table "les_photos_de_l_utilisateur" je me dis qu'il suffira que j'extrais du répertoire les images que j'aurais renommé.
    Exemple:
    Dans le repertoire: ./img/$login_utilisateur
    Photo1 photo2 photo3 et vignette.
    Si j'ai besoin de la vignette, j'appelle le path et le nom standard de l'image et j'affiche ce que je veux non?
    Pas besoin de rentrer les noms dans la base, je me trompe?

    Que penses tu de cette approche?

    L'autre solution que je proposais au début du post ressemble à celle proposée par Denis dans les commentaires sur ton article:
    le nom de chaque image était tout simplement le n° de dossier du patient sur
    6 positions suivi d'un numéro d'ordre sur 2 positions.
    Je peux en effet avoir un seul repertoire avec, pour différencier les photos un suffixe égal au login de l'utilisateur puisque login unique...

    J'aurais alors toutes les photos dans le meme repertoire.
    Quelle est la meilleure solution des deux, on en revient à ma premiere question.
    La reponse de Jesper était Dossier...
    D'autres avis m'intéressent ne serait ce que pour explixiter la réponse de Jesper

    [EDIT]
    Précisement la question est la suivante:
    Pour 100 utilisateurs à 4 images/utilisateurs, nous avons donc 400 images.
    2 hypothèses:

    D'un côté:
    400 images dans le meme repertoire et je recherche ./img/$login_photo1.jpg

    De l'autre:
    100 repertoires contenant chacun 4 images et je recherche ./img/$login_rep/photo1.jpg

    Lequel sera le plus rapide, le moins gourmand?

    Sur ce principe, j'ai un primary Key qui est le champs id
    N'ai-je pas interet à la virer pour faire de mon champ nom_utilisateur la primary key?

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Tu évoques le soucis de nommer et de retrouver les fichiers.
    Je me disais qu'en utilisant le login de l'abonné et en créant un répertoire à ce nom, la chose était faite et me simplifiait la vie.
    Très mauvais. on ne mélange pas données et sémantique.
    Le problème que j'évoque est simplement le fait qu'il ne faut pas trop de fichiers dans un même répertoire. Limiter à 256 est bien. Donc prévoir la création de sous répertoire régulièrement.
    Pour ma part pour chaque nouveau fichier je créer un GUID et le répartit dans 16 répertoire racine en fonction du premier octet, puis si cela ne suffit pas, dans 16 autres dans chacun des 16 premiers pour le second octet...
    Exemple si GUID = 285EFDCC-D224-49C3-913D-1590D4741942
    Alors stocké dans ..\2\8\285EFDCC-D224-49C3-913D-1590D4741942

    Par exemple, plutôt que de lier la table "utilisateur" avec la table "les_photos_de_l_utilisateur" je me dis qu'il suffira que j'extrais du répertoire les images que j'aurais renommé.
    Exemple:
    Dans le repertoire: ./img/$login_utilisateur
    Photo1 photo2 photo3 et vignette.
    Que penses tu de cette approche?
    ça c'est de la merde !
    Si vous n'êtes pas à l'aise dans les SGBDR, alors évitez les. Sinon acquérissez les compétences !

    le nom de chaque image était tout simplement le n° de dossier du patient sur 6 positions suivi d'un numéro d'ordre sur 2 positions.
    Encore un mélange de sémantique

    Il existe une dernière solution, si votre SGBDR possède le type DATALINK comme IBM Db2 ou son équivalent comme FILESTREAM (SQL Server 2008), alors c'est le SGBDR qui va s'occuper de gérer le stockage des fichiers.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Alors stocké dans ..\2\8\285EFDCC-D224-49C3-913D-1590D4741942
    Je vais m'intéresser à cette technique.

    Citation Envoyé par SQLpro Voir le message
    ça c'est de la merde !
    Si vous n'êtes pas à l'aise dans les SGBDR, alors évitez les. Sinon acquérissez les compétences !
    Si tous ceux qui ne maitrisent pas une discipline devaient s'abstenir, vous ne vous seriez jamais lancé dans le graphisme des sites que vous avez réalisés et que j'ai pu voir.
    Il me semble plus intéressant d'y voir le premier pas d'un apprentissage plutôt que de la merde comme vous dîtes...


    Citation Envoyé par SQLpro Voir le message
    Il existe une dernière solution, si votre SGBDR possède le type DATALINK comme IBM Db2 ou son équivalent comme FILESTREAM (SQL Server 2008), alors c'est le SGBDR qui va s'occuper de gérer le stockage des fichiers.
    A +
    Je note également.

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Si tous ceux qui ne maitrisent pas une discipline devaient s'abstenir, vous ne vous seriez jamais lancé dans le graphisme des sites que vous avez réalisés et que j'ai pu voir.
    Mais je ne prétends pas ni maîtriser le graphisme, ni faire de l'art.... Je n'ai d'ailleurs pas de temps à perdre avec ce genre de chose car je m'intéresse avant tout au contenu !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Mais je ne prétends pas ni maîtriser le graphisme, ni faire de l'art.... Je n'ai d'ailleurs pas de temps à perdre avec ce genre de chose car je m'intéresse avant tout au contenu !

    A +
    Je n'ai jamais prétendu maitriser sql...

Discussions similaires

  1. Comment collecter les données des imprimantes via snmp?
    Par sauvezmoi dans le forum Développement
    Réponses: 0
    Dernier message: 25/03/2014, 09h59
  2. [MySQL] Comment stocker les résultats d'un enregistrement dans des variables?
    Par Alexandrebox dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 30/07/2010, 21h23
  3. Réponses: 13
    Dernier message: 07/05/2010, 17h49
  4. Comment extraire les types des données dans un message SOAP
    Par demcoul dans le forum Services Web
    Réponses: 3
    Dernier message: 19/05/2008, 11h58
  5. comment stocker les données d'une hashtable dans un fichier?
    Par mokh7 dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 02/04/2008, 02h31

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