すべてのビデオとそれぞれの詳細をデータベースに保存します。私はいくつかのテーブルを持っています:
- ビデオ(ビデオの詳細、名前など)
- video_file (各ビデオは、異なるビット レートと異なる画面サイズでレンダリングされます)
- プレイリスト (定義済みのプレイリストにビデオを保存するため)
各ビデオには 1080 と 720 でエンコードされたファイルがあり、それぞれが 3 つの異なるビット レートでエンコードされており、これらのビット レートはそれぞれ WebM と MP4 の両方でエンコードされています。したがって、ビデオ エントリごとに video_file に 6 つのエントリがあります。したがって、クエリは動画ごとに 12 行を返します。
私が見る問題は、「必要な」情報だけでなく、各行にすべての情報が含まれていることです。例:
| id | name | playlist | file | quality | size | type |
---------------------------------------------------------------------
1 video1 funny videos file1 3 720 MP4
1 video1 funny videos file2 2 720 MP4
1 video1 funny videos file3 1 720 MP4
1 video1 funny videos file4 3 1080 MP4
1 video1 funny videos file5 2 1080 MP4
1 video1 funny videos file6 1 1080 MP4
1 video1 funny videos file7 3 1080 WebM
1 video1 funny videos file8 2 1080 WebM
1 video1 funny videos file9 1 1080 WebM
1 video1 funny videos file10 3 720 WebM
1 video1 funny videos file11 2 720 WebM
1 video1 funny videos file12 1 720 WebM
これは出力例です。はるかに効果的だと思うのは、結果をグループ化して、行ごとに冗長な情報が得られないようにすることです。結局のところ、この情報を PHP または使用している言語でグループ化して、それを使用できるようにすることになります。まったく。
より効果的だと私が信じるものの例:
| id | name | playlist | file | quality | size | type |
---------------------------------------------------------------------
1 video1 funny videos file1 3 1080 WebM
file2 MP4
file3 720 WebM
file4 MP4
file5 2 1080 WebM
file6 MP4
file7 720 WebM
file8 MP4
file9 1 1080 WebM
file10 MP4
file11 720 WebM
file12 MP4
このようにして、列名に対応するいくつかの変数を簡単に設定できます。
id, name, playlist, file, quality, size, type
while (record = fetchRecord)
id = record.id or id
name = record.name or name
playlist = record.playlist or playlist
file = record.file or file
quality = record.quality or quality
size = record.size or size
type = record.type or type
// Now you have filled the variables with the exact information you had in the first recordset example, but without wasting so much unnecessary bandwidth and processing power.
ここで、ビデオの再生中にポップアップするメモを含む別のテーブルを追加しているので、ビデオに x 数のメモがある場合、ビデオごとに 12x 行が返されます。
これは非常識です!私は何かを逃しましたか?ここで私が「説明」していることは実際に可能ですか?それとも、今日のように動画ごとに 12 行を返す 1 つのクエリを作成し、メモをフェッチする各動画を実行する方がよいでしょうか?
これで私の質問は終わりです、最後まで読んでくれてありがとう!