2017-07-20 40 views
0

私はムービーのデータベースを含むアプリケーションを構築しています。ムービーには、タイトル、ディレクター、アクターなどのさまざまなフィールドがあります。ムービーデータベースの各行にムービーカバーを含めることもできます。私は現在、画像の絶対ファイルパス(ムービーカバー)を含む "cover_path"というデータベースの列を持っています。私は同様に、実際の映画へのパスを含む "movie_path"と呼ばれるものを持っています。データベースにファイルパスを格納することは、データの独立性を損なうでしょうか?

データベースにファイルを格納し、ファイルパスをデータベースに保存することで、データの独立性を犠牲にすることはありませんか?

+0

データベースのファイルパスに関する問題は、データベースを別のマシンに移動する必要がある場合、またはディスクドライブに障害が発生した場合、またはディスクシステムを拡張して名前を変更する必要がある場合に発生します。つまり、ファイル名を保存する方が良いかもしれません。多分、さまざまな変更(またはおそらくはルートディレクトリのセット)に対応するために、設定可能なルートディレクトリに相対的な名前を保存してください。 –

+0

私は同意します、アプリケーションは個人的な用ですので、アプリケーションの設定ファイルに基本ファイルパスを保存して、アプリケーションを実行したい人は、その設定ファイルを編集するだけです。 –

答えて

0

ファイルパスを使用すると、バイナリデータをデータベースに格納するほうが利点があります。 Thisはこの件に関する良い議論です。

どのようなレベルでもデータの独立性の目的をどのように打ち消すのかはわかりませんが、

+0

私はそれがその目的は、ファイルパスをアプリケーション自体に格納するのかデータベースに格納するのかによって、そのパスがまだ変更されている可能性があり、ファイルを使用してアプリケーションを中断させるためです。このため、ファイルパスが変更されたとしても、ファイルパスがアプリケーションやデータベースに直接ハードコードされているかどうかは問題ではないと思います。 –

+0

私はあなたを正しく理解しています:movie_pathにmovie_title、movie_idを接続しました。アプリケーションはmovie_idまたはmovie_nameがユーザーの要求と等しいところのmovie_pathを要求します。ファイルのパスが変更されると、movie_pathの値が変更され、アプリケーションは正しい結果(ファイルシステム内でムービーを探す場所)を取得します。したがって、パスをハードコードするべきではありません。そのような変更が発生したときに、movie_pathおよびcover_pathフィールドの値を変更するシステム(管理パネル内)を作成する必要があります。 – doriclazar

関連する問題