2011-12-19 9 views
2

J'ai lu toutes les questions et réponses sur ce sujet que je peux trouver sur ce site (et d'autres) et ne trouve toujours pas de réponses pour le scénario suivant.Sauvegarder des fichiers dans une base de données SQL Server

J'ai un SQL Server 2008R2 hébergé dans un centre de données. Mon client utilise mon application Windows qui stocke des données dans une base de données SQL Server 2008R2. Il existe des documents Word, Excel, PDF, JPG, PNG, etc. qui sont liés aux enregistrements de la base de données. Mon client doit avoir accès à ces documents depuis n'importe où. Je pense que je vais enregistrer les docs dans les enregistrements de la base de données, les rendant ainsi disponibles à partir de n'importe où.

Mes questions sont les suivantes:

  1. Ai-je raison de supposer que si le fournisseur d'hébergement n'a pas allumé FileStream sur SQL Server, alors je ne peux pas utiliser cette installation sur mes propres bases de données? (Cela semble être une hypothèse raisonnable, mais peut-être quelqu'un peut confirmer qu'il n'est pas disponible sur un niveau de base de données individuel.)

  2. Ai-je raison de supposer que le fournisseur d'hébergement devra également autoriser la lecture/écriture dans une structure de dossiers si Je décide de sauvegarder les fichiers directement sur le disque? Enfin, quelqu'un peut-il fournir des commentaires sur ses expériences réelles d'enregistrement de documents dans une base de données SQL Server «hébergée dans le cloud»? La performance va-t-elle être un problème technique à surmonter ou simplement essayer d'endurer la patience des utilisateurs?

Merci pour votre aide et vos idées.

+0

"Mon client doit avoir accès à ces documents de n'importe où". J'ai l'expérience d'utiliser Azure Blob Storage et Amazon S3 pour le stockage de fichiers et il vaut mieux les utiliser et enregistrer les références d'URL dans votre base de données. Vous pouvez toujours protéger ces fichiers contre un accès direct et permettre à l'utilisateur du système de télécharger ces fichiers à la demande en les signant. Il y a des tonnes de docs sur ce sujet. Pourquoi utilisez-vous une application Windows? Semble parfait pour une solution de site Web. –

+0

WinApp est un produit existant qui fournit des fonctionnalités tout simplement impossibles dans une WebApp (ATM). Une interface Web est en cours de développement mais cela ne changera pas la fonctionnalité sous-jacente de la solution. C'est le premier client à utiliser ce produit particulier qui a demandé cette fonctionnalité "docs de n'importe où", mais je peux voir que cela est exigé par d'autres clients, donc je veux bien faire les choses. – Chimesy

Répondre

4
  1. Non, vous n'êtes pas correct. Vous pouvez toujours diffuser des fichiers dans/hors de la base de données, sans la possibilité d'utiliser directement les URL de type fichier qui sont servies par la base de données elle-même.

  2. Oui. Presque tous le font, cependant. Fait raisonnablement, il n'y a aucune raison pour que cela ne marche pas très bien pour toutes les situations critiques, sauf les plus extrêmes. ce qui n'est pas la même chose que de dire que c'est comme ça que vous devriez le faire.

+3

Pour ajouter au point n ° 3, l'espace SQL est généralement beaucoup plus cher que le simple stockage en nuage, de sorte que vos coûts peuvent être inutilement élevés si vous stockez beaucoup de fichiers dans la base de données. –

+0

C'est un bon point @JohnKoerner; Puisque vous payez généralement pour le stockage en nuage par octet, c'est quelque chose à garder à l'esprit. –

+0

Je vois que j'ai été trompeur avec mes termes ("nuage", etc). La base de données SQL est actuellement hébergée et l'espace/coût n'est pas mon problème.(Le client reçoit un parrainage pour ses frais d'hébergement/SQL du fournisseur d'hébergement). Cela dit, cela soulève un drapeau pour moi de vérifier cela plus loin pour tous les futurs sites. – Chimesy

Questions connexes