-1

我正在尝试编写一个基于 java 的电影数据库程序。它递归地搜索给定的文件夹列表,检索有关电影文件的信息,并允许您使用标签/演员/文件分辨率/等搜索电影,并将显示电影的封面缩略图和屏幕截图。

我现在拥有的程序将信息(仅 atm 文件名/大小)存储在数组列表中,并生成带有缩略图的 html 页面。我想改用 mysql 数据库,这样它将永久存储电影信息,而不必每次都搜索所有文件夹。

我可以为每部电影使用“媒体”对象来存储所有这些信息,但我不确定将其存储在数据库中的最佳方式。我不想只序列化 Media 对象,因为那样我将不得不遍历整个数据库进行搜索,这会很慢。我假设我需要使用 mysql 查询来搜索。

我对数据库设计的了解还不够,尽管我确实知道一旦我决定了布局后如何使用 jdbc 创建/访问 mysql 数据库。

谁能给我一些关于我需要学习什么以及在哪里学习以便决定如何为我的电影数据库布局/索引和链接表格的指示?

这是我当前的媒体对象:

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 号。还要确保指定哪些列不能为空或空白,以避免意外写入不完整的数据。

但是,我也看到您有演员和标签的数组。作为设计师,我希望它们位于单独的表中,另一个表将它们连接到主媒体表以实现多对多关系。您还可以使其更简单,只需将其设置为带有分隔符的长字符串,您将解析该分隔符并将其放入数组中。

您可能还想重新考虑将文件直接保存到 MySQL 中。我更喜欢只保存文件位置并保持实际文件不变。

我认为您还应该查看当前版本的 MySQL 具有的示例数据库,称为Sakila,当您安装最新版本的 MySQL 时,它也应该可以安装。它是视频商店的数据库,因此具有精心设计的表格,用于存储电影数据及其所有相关因素。

于 2013-07-09T06:05:51.263 回答