什么是在mysql中针对多行存储单个记录的更好方法

时间:2011-09-06 10:24:12

标签: java mysql

嗨,我是mysql和java的新手。我想存储一小块文件的jpeg文件和哈希值。我已经存储了小块的哈希值(数量为100),现在也希望将jpeg文件存储在这些小块中。我的问题是我是否需要为每条记录反复存储文件,或者是否可以保存文件一次并将其链接到与文件相关的记录?如果是的话那么请指导我,我该怎么办呢?

2 个答案:

答案 0 :(得分:4)

您可以将文件保存在计算机上并将其路径存储在数据库中 假设您在表中有一个字段(比如imagePath),该字段包含“varchar”数据。您可以在那里存储图像的路径并在运行时检索图像。通过执行此操作,您可以避免多次保存同一文件。但是,它将覆盖具有相同名称但不同数据的图像。为此,您必须使用主键附加到文件的名称。我希望它能帮助你理解。

答案 1 :(得分:2)

我必须承认我并不完全确定你想做什么,但如果你理解正确的话,那就是我要做的事。

一个表(比如tblJpgs),其中包含有关jpg文件的数据,可能是Naved建议的路径和文件名,另外还有一个描述以及有关该文件的任何有用信息。在此表中,每个jpg文件将有一行,每行将具有唯一的ID。

然后你将拥有所有块的另一个表(比如说tblChunks)。应该有一列用于将每一行与tblJpgs.id连接起来。然后当然有一个带有块本身的列。在此表中,每个块将有一行,但是一个jpg文件将有许多行。

通过这种方式,您只能将信息保存在一个地方,这在数据库结构中非常重要。使用块存储jpg文件或它的每个行的路径和文件名将违反这个基本的数据库结构,因此应该避免。