これがここでよく聞かれる質問なのか、それともこれに対する回答が得られるのかはわかりませんが、画像を含むフォルダー構造から DB リンクレコードを生成する疑似コードアプローチを探していますファイル。
次のような構造のフォルダーのセットがあります。
+-make_1/
| +--model_1/
| +-default_version/
| | +--1999
| | +--2000
| | | +--image_01.jpg
| | | +--image_02.jpg
| | | +--image_03.jpg
| | | ...
| | +--2001
| | +--2002
| | +--2003
| | ...
| | +--2009
| +--version_1/
| | +--1999
| | ...
| | +--2009
| +--version_2/
| | +--1999
| | +--2000
| | +--2001
| | | +--image_04.jpg
| | | +--image_05.jpg
| | | +--image_06.jpg
| | | ...
| | +--2002
| | +--2003
| | | +--image_07.jpg
| | | +--image_08.jpg
| | | +--image_09.jpg
| | ...
| | +--2009
... ... ...
本質的には、1999 年から始まる年ごとの車両の可能な画像を表します。
メーカーとモデル (例: メーカー: アルファ ロメオ、モデル: 145) には、さまざまなトリムやバージョンがあります。各トリムまたはバージョンは、同じように見えるが、燃料の種類またはエンジン容量に違いがある多くの車両に見られる場合があります。
重複を保存するために、上記のフォルダー構造はデフォルトのフォルダーを使用します...そして、2000年以降のデフォルトバージョンの画像が表示されます。各バージョンのリンク テーブルを作成する必要があります - 独自のオーバーライド イメージがあるかどうか、またはデフォルト バージョンを使用するかどうかに基づいて...
たとえば、version_1 にはイメージ ファイルがないため、2000 年から 2009 年までのデフォルト イメージへのリンクを作成する必要があります。
一方、バージョン 2 は 2000 年にデフォルトのイメージを使用して開始しますが、最初は 2001 ~ 2002 年、次に 2003 ~ 2009 年の 2 つの新しいセットを使用します。したがって、必要なリンクのリストは...
version start end file_name
======= ===== ===== =========
version_1 2000 2009 image_01.jpg
version_1 2000 2009 image_02.jpg
version_1 2000 2009 image_03.jpg
...
version_2 2000 2001 image_01.jpg
version_2 2000 2001 image_02.jpg
version_2 2000 2001 image_03.jpg
version_2 2001 2003 image_04.jpg
version_2 2001 2003 image_05.jpg
version_2 2001 2003 image_06.jpg
version_2 2003 2009 image_07.jpg
version_2 2003 2009 image_08.jpg
version_2 2003 2009 image_09.jpg
...
(デフォルトは単なるプレースホルダーであり、リンクは必要ありません。)
現時点では、フォルダーを調べてアレイを構築し、最後に脂肪をトリミングしています。ある種のテキスト処理アプローチを使用して、ショートカットがあるかどうか疑問に思っていましたか? 約 45,000 のフォルダーがあり、そのほとんどは空です :-)