2016-09-15 17 views
0

私は、ユーザーが画像付きの記事をアップロードできるウェブページを持っています。ユーザーが記事をアップロードできる画像の量に制限はありません。 MySQLデータベースの各行は、多数の記事の1つを表しています。これらの画像をすべて保存するにはどうすればよいですか?私はBLOBS/LONGBLOBSを使用することを知っていますが、ユーザーがアップロードする画像の量を制御できない場合、異なる画像に対して50列を挿入するだけではなく、50未満のアップロードを望むこともできます。複数の画像を保存するMYSQL

答えて

2

これを行うための最善の方法は、それがこのようなデータベースであなたを残しますので、記事を参照しているイメージを持つテーブルを作成することです:

Database Diagram

Images用テーブル作成スクリプトは次のようになりますこの:

CREATE TABLE `Images` (
    `ImageID` bigint NOT NULL AUTO_INCREMENT, 
    `ArticleID` bigint NOT NULL, 
    `Image` longblob NOT NULL, 
    PRIMARY KEY (`ImageID`) 
); 
ALTER TABLE `Images` ADD CONSTRAINT `FK_Images` FOREIGN KEY (`ArticleID`) REFERENCES `Articles`(`ArticleID`); 

今あなたがしなければならないすべては、それが属するArticleIDと一緒Imagesに画像を挿入しています。

+0

私は、イメージをBLOBとして保存することは、相対パスをファイルシステム上のどこに格納するのかというと効率的ではないことを指摘したいと思いますが、数百または数千キロバイトのデータベースを照会するのは非効率的な構造ですn個の画像上の未加工画像データと、前記画像への経路リストを取り出すことと比べて非常に遅い。 – skrilled

関連する問題