-1

Java ベースの映画データベース プログラムを作成しようとしています。指定されたフォルダーのリストを再帰的に検索し、その中の映画ファイルに関する情報を取得し、タグ/俳優/ファイル解像度/などを使用して映画を検索できるようにし、映画のカバー サムネイルとスクリーンショットを表示します。

私が持っているプログラムは、情報(ファイル名/サイズのみのatm)をarraylistsに保存し、サムネイルを含むhtmlページを生成します。代わりに mysql データベースを使用して、映画情報を永続的に保存し、毎回すべてのフォルダーを検索する必要がないようにしたいと考えています。

各映画の「メディア」オブジェクトを使用して、このすべての情報を保存できますが、これをデータベースに保存する最良の方法がわかりません。Media オブジェクトをシリアライズしたくありません。データベース全体を反復処理して検索する必要があり、遅くなるためです。検索にはmysqlクエリを使用する必要があると思います。

レイアウトを決定したら、jdbc を使用して mysql データベースを作成/アクセスする方法は知っていますが、データベース設計の基本的な知識はありません。

映画データベースのテーブルをレイアウト/インデックス付けしてリンクする方法を決定するために、何を学ぶ必要があるか、どこで学ぶべきかについて、誰かが私にいくつかの指針を与えることができますか?

ここに私の現在の Media オブジェクトがあります:

public class Media {

    File file_location;
    String filename;
    Date date;
    int hres;
    int vres;
    boolean has_tbn;
    File tbnloc;
    boolean has_ss;
    File ssloc;
    int length;
    String[] actors;
    String[] tags;
    boolean HD;
    long filesize;
    String md5;
4

1 に答える 1

1

あなたが言ったことから、MySQL データベースをセットアップ/作成する方法を既に知っていると思いますので、それについては気にしません。

まず、メディア用のテーブルを作成する必要があります。Media クラスの各オブジェクトを適切なデータ型で格納できる列の設計を開始し、一意である必要がある主キーを設定します。これは、個別の ID 番号であることが望ましいです。また、誤って不完全なデータを書き込んでしまわないように、NULL または空白にできない列を必ず指定してください。

ただし、アクターとタグの配列もあることがわかります。デザイナーとしては、これらを別のテーブルに配置し、別のテーブルでそれらをメインのメディア テーブルに結合して、多対多の関係にすることを好みます。また、より単純にして、解析して配列に配置するセパレーター付きの長い文字列として設定することもできます。

ファイルを MySQL に直接保存することも再検討することをお勧めします。ファイルの場所を保存して、実際のファイルをそのままにしておくことを好みます。

また、最新バージョンの MySQL をインストールするときにインストールできるSakilaと呼ばれる、現在のバージョンの MySQL に含まれているサンプル データベースも確認する必要があると思います。これはビデオ店のデータベースであるため、映画データとそれに関連するすべての要素を格納するための適切に設計されたテーブルがあります。

于 2013-07-09T06:05:51.263 に答える