来自java的电影信息的Mysql Db布局

时间:2013-07-09 02:52:01

标签: java mysql database-design

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

我现在拥有的程序现在在arraylists中存储信息(仅限文件名/大小),并生成带有缩略图的html页面。我想使用mysql数据库,因此它将持久存储电影信息,并且不必每次都搜索所有文件夹。

我可以使用" Media"每个电影的对象存储所有这些信息,但我不确定将其存储在数据库中的最佳方法。我不想只是序列化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;

1 个答案:

答案 0 :(得分:1)

根据您的说法,我假设您已经知道如何设置/创建MySQL数据库,所以我不会为此烦恼。

首先,您需要为您的媒体制作一张桌子。开始设计一个列,该列可以使用适当的数据类型存储Media类中的每个对象,以及设置一个唯一的主键。这优选地是单独的id号。还要确保指定哪些列不能为空或空白,以避免意外写入不完整的数据。

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

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

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