2011-08-22 3 views
1

De quels champs pensez-vous que j'ai besoin pour stocker/récupérer des fichiers de manière générique?Structure de table générique pour stocker des fichiers/images dans la base de données

Je pense:

    nom
  • (varchar)
  • données (blob)
  • content_type (varchar)

Aussi, est-il un moyen en php pour déterminer programme contenu -type lorsque le fichier est téléchargé?

(je l'ai déjà demandé aux fichiers d'interrogation dans le système de fichiers ou base de données et j'ai choisi d'aller avec la base de données.)

+0

Quelle base de données utilisez-vous? Je grince quand les gens poussent BLOB dans des bases de données, en particulier MySQL. – NullUserException

+0

Je sais que ce n'est probablement pas ce que vous voulez entendre, mais je vais le dire de toute façon - l'utilisation d'une base de données pour stocker des fichiers est une erreur. Il est préférable d'utiliser la base de données pour stocker les métadonnées des fichiers (éléments que vous souhaitez rechercher, titre d'enregistrement, tags, description, date de téléchargement, utilisateur chargé, etc.), mais les fichiers sont presque toujours mieux stockés sous forme de fichiers. Même si vous stockez les fichiers sous un nom de fichier qui les attribue à la ligne de la base de données (afin d'éviter les conflits de noms de fichiers, etc.), cela vaut mieux que d'essayer de stocker tout le fichier dans un champ de base de données. –

+0

J'ai déjà commencé une question à ce sujet. J'utilise une base de données pour rendre mon application facile à installer (pas de fichiers chmoding) et des sauvegardes faciles. Il s'agit en fait d'une seule image pour le moment, ce n'est donc pas une grosse affaire. –

Répondre

0

J'ai fini par aller avec:

  • file_id (INT, primaire auto-incrément)
  • nom_fichier (VARCHAR 255)
  • file_data (LONGBLOB)
0

BLOB est pour stocker des fichiers

Depends des exigences d'application mais je pense n'est pas une bonne idée de stocker le fichier dans la base de données

Questions connexes