2011-09-10 8 views
0

私はMySQLを使用していて、あるテーブルのプライマリキーであるカラムIDを持っているとします。 PHPでは、ランダムな文字列/整数を生成し、それをデータベースのIDとして格納します。私はそのIDを私のコード内のどこにでもあるファイルの名前として参照します(私はいつも一意であると知っています)。データベースのIDとファイルをリンクする

私の質問は、上記のファイルの完全な場所を保存するためにテーブルに余分な列を追加する必要がありますか、どこからでもIDで参照していますか?

私のアプリケーションはまだ開発の初期段階であり、使用状況に応じてスキーマやデータベースを変更しなければならない可能性があるため、この質問をします。

=== === EDIT

私はさらにために求めているものを明確にしましょう。私は私のデータベースにいくつかの画像のIDを格納しています。今、私はすべてのイメージ名がidと同じで、/ 123img45という名前で保存されていることを知っています。私は自分の現在地を知っているので、ファイルへのパスを保存するのは面倒ではありませんが、後で私はデータベースを変更したり、フォルダ名などを変更することがあります。

パスを保存する価値はありますか?または、あなたがそれに到達するときにその橋を渡る方が良いでしょうか?

答えて

1

私は気にしません。ファイルが格納されているフォルダへのパスは、アプリケーションコードの構成変数として保持できます。これはまた、データベースに触れることなくフォルダを移動できることを意味します。

今後完全なパスを保存する必要がある場合は、後で完全なパスを追加するためにデータベースを更新して、何らかの理由で必要がある場合は簡単に追加できます。

1

ファイルが常に既知のパスまたは既知のパスにあり、パスがそれぞれのIDを含むと判断できる場合は、ファイルのIDのみを保存できます。 idは適切なファイル名( '\'、 '/'および他の文字なし)でなければならず、ユニークでなければなりません(衝突が発生するとしばらくしてからid生成ができないようにしてください)。

+0

将来的に変更される可能性があることがわかっている場合は、ファイルへのフルパスを保存する価値はありますか? – Obto

+1

IDのみを保存します。パスは変更できますが、パスを設定(ファイル、環境など)に保存する必要があります。フルパスを保存する場合は、データベースパスを変更せずに変更することはできません。 idだけを格納する方が簡単です。 –

関連する問題