2016-08-29 25 views
1

複数の画像を連続して保存する必要があります。だから、私は2つのアトラクションに従うことができます。複数の画像URLをデータベースの1つの行に保存する

1.最初の方法

一つのアプローチ(私は本で読んだとして避けるべきである)1nFの形です。

Iは、列のURLとテーブルフィードを作成し、カンマ

IDURL

1 a.jpg、b.jpg、c.jpgによって分離されたいくつかのURLを格納します

2 xyz.jpg、画像を取得するためにimage.jpg

、私は(爆発使用します)

$photos = explode(' , ', $url); 

第二の方法第二の方法は、テーブルを正規化し、テーブル送り

フィードテーブルを有する多く対1の関係を有する別の画像テーブルを作成することである。

id

画像テーブル:

FIDURL

1 a.jpg

1 b.jpg

1 c.jpg

Iなぜ私たちが最初のアプローチを無効にする?または小規模なプロジェクトには最初のアプローチを使用してもよろしいですか?

+1

画像のURLを並べ替える場合はどうすればよいですか? 1NFでは、データベースレベルで行うのが非常に複雑になります。正規化されたフォームでは、単純なORDER BY節になります。 WHERE句にも適用されます。 –

答えて

0

画像について話している場合、正規化によって何も表示されません。画像のファイル名でフィルタリング、並べ替え、集約することはありません。

あなたの最初のアイデアは正しい(最初の方法)に近いです。しかし、私は値を格納するためにjson_ *関数を使うことを勧めます。

$urls = json_encode(['x.jpg', 'y.jpg', 'z.jpg']); 
// INSERT INTO mytable (..., urls) VALUES (..., $urls); 

// SELECT urls FROM mytable; 
$photos = json_decode($data['urls']); 
2

可変数のイメージ名がありますか? 「配列」は、別の表の行として実装する必要があります。あなたの#2と同じように。

あなたは明らかにあなたの宿題を終えて議論を読んでいます。私はここでそれらを再ハッシュしません。代わりに、私は2つの学習練習で質問を回すことをお勧めします。

  1. #1を実装してください。今から1ヶ月後に問題を理解できます。その時点で、別のレッスン、つまり...
  2. スキーマ(2テーブルに1つ)を変更してデータを保存する方法を学びます。いくつかのSQL文が必要です。彼らは2番目の学習練習になります。
関連する問題