La manière dont vous concevez votre schéma de stockage de base de données est subjective, mais il existe objectif éléments à prendre en compte dans votre scénario. J'y répondrai, et laisserai le "que devrais-je choisir"
Azure Les blobs de stockage sont conçus pour des données en bloc "en bloc" (telles que des documents, des images, etc.). Quelque chose comme base de données SQL est conçu pour les métadonnées (choses que vous recherchez/index/requête). Tout peut être fait via une base de données SQL, et vous n'aurez qu'à vous soucier des requêtes SQL (et vous avez déjà l'impression que c'est quelque chose que vous connaissez déjà). SQL Server (et SQL Database) ont toujours eu la possibilité de stocker du contenu binaire via son type BLOB.
Alors que vous pouvez stocker vos images dans la base de données SQL, vous constaterez que la taille de votre base de données augmente considérablement, vs simplement stocker des métadonnées interrogeables. Et tandis que le service de base de données SQL vous permet de dimensionner votre stockage, vous trouverez une plus grande échelle dans le stockage blob (jusqu'à 500 To) à un coût inférieur au service de base de données SQL. Si vous exécutez SQL Server dans une machine virtuelle, les coûts de stockage (disques joints) seront toujours équivalents aux blobs, ainsi que les coûts de la machine virtuelle.
Les blobs de stockage, en eux-mêmes, ne fournissent pas de langage de requête - vous devez connaître le nom du conteneur et/ou du blob. Ainsi, pour une recherche optimale, vous aurez besoin d'une base de données interrogeable avec vos métadonnées (par exemple, base de données SQL). Si vous stockez vos images dans des objets BLOB et que vous les référencez via URI dans votre base de données, vous pourrez interroger votre base de données, trouver l'URI de l'image, puis lire à partir du stockage BLOB de manière appropriée. Remarque: Avec les blobs, vous pouvez fournir un accès URI direct à un navigateur ou à une application (même si le blob est marqué comme privé), ce qui vous permet de contourner votre niveau d'application. lors de la livraison de contenu binaire (image) à l'utilisateur final. Blobs peuvent également être mis en cache dans le CDN, ce que vous ne pouvez pas faire avec la base de données SQL.
Ce que vous choisissez dépend de vous; J'ai simplement fourni les raisons objectives d'utiliser chacune d'elles.
Je ne sais pas trop sur Azure pour l'hébergement, les images dans les bases de données peuvent être un sujet intéressant. Maintenir l'intégrité référentielle en les stockant dans la base de données est une bonne chose, mais la taille de la base de données n'est pas géniale non plus. Une pensée, allez-vous utiliser azure db aussi? Si oui, mon hypothèse serait que le stockage serait moins cher les hébergeant dans le stockage Azure Blob plutôt que de payer pour des ressources DB plus importantes, mais c'est purement une hypothèse .... – Matt
Merci Matt, bons points. Oui utilisera Azure DB aussi - et le blob est def moins cher ... :) – Nik
bien alors je suppose que cela se résume à si la performance est acceptable et je m'excuse mais je ne peux pas peser dedans car je n'utilise pas d'azur . Bravo – Matt