2

私のデータベースを知るようになると、私のアプリケーションのある時点で、ユーザーは1つまたは複数の写真をアップロードできるようになります。私の友人は、テキストの塊よりもファイル名を使用する方が良いと私に言いました。これにはvarcharまたはvarbinaryを使用する必要がありますか?

また、ユーザーがより多くの写真をアップロードする場合(たとえば、最大数は10)、写真のテーブルと、userspicturesなどの接続するテーブルを作成するか、すべての写真を次のような文字列に格納する方がよいでしょう。その効果のためにコンマまたは何かで区切られていますか?

助けてくれて本当にありがたいです。

4

3 に答える 3

5

あなたの友人が言ったように、ファイル名だけをデータベースに保存する方がよいでしょう。私はお勧めしVARCHAR(255)ます。

複数のファイル用に別のテーブルを作成することを強くお勧めします。

CREATE TABLE photos (
  id INTEGER UNSIGNED AUTO_INCREMENT,
  user_id INTEGER UNSIGNED,
  filename VARCHAR(255) UNIQUE NOT NULL,

  PRIMARY KEY(id)
);

SELECT id, filename FROM photos WHERE user_id = [user_id]
于 2012-08-14T16:57:36.130 に答える
1

(Binary Large Object)データ型は大量のバイナリデータを格納するために使用されるため、varchar代わりにデータ型を使用してデータベースの画像ファイル名を使用する必要があります。サーバーに画像を保存し、画像名をデータベースに渡します。複数のファイル用に別のテーブルを作成します。問題ありません。blobblob

于 2012-08-14T17:20:46.707 に答える
1

すべての画像をコンマ区切りの文字列に格納すると、第 1 正規形に違反し、非効率的なクエリにつながる可能性があります。データをアトミック形式に縮小する必要があるため、そのような場合は、常に別のテーブルを作成して個々のデータ項目を格納してください。

于 2012-08-14T17:01:53.567 に答える