-3

目录长度未知,我有很多文章。我想将目录存储在我的 MySQL 中。我不知道我是否应该使用 BLOB,因为那样我将无法通过 SQL 查询来更改它们。

我需要能够将目录返回到 Java 中的数组对象中。

4

3 回答 3

2

我猜你会想要使用 Text 而不是 blob,因为它会处理文本而不是二进制正确的。文本字段类似于 Varchar,但具有您需要的所有大小。

http://dev.mysql.com/doc/refman/5.0/en/blob.html

于 2013-08-15T07:49:17.370 回答
2

好的,所以您的目录实际上是一个字符串数组。

您的选择是:

  • 创建一个新表,以便每个数组元素是表中的一行。您可能需要用于外部键的列以及其目录中的每个字符串的索引。这为您在 ToC 及其元素(或文章和 ToC 元素......取决于您选择如何建模它)之间提供了正确的一对多关系。(借用 @oldCurmudgeon 的评论。)

  • 使用 Java 序列化来序列化String[]并使用BLOB列类型。

  • 创建(或选择)自定义编码方案以将其String[]转换为文本表示并将其存储在TEXT列中。

如果您希望能够查询和/或更新各个目录元素,那么第一个方案就是要走的路。


@ppeterka 指出(正确地)您最好阅读数据库规范化的主题......这是关于设计模式以减少信息重复的主题。在这种情况下,它将帮助您权衡将抽象模型(例如“一对多关系”)转换为数据库模式的替代方法。

于 2013-08-15T08:09:11.987 回答
-1

有关对象的序列化和反序列化,请参阅什么是对象序列化。然后将序列化的数据字节存储在 SQL 的 BLOB 列中。

于 2013-08-15T08:06:18.103 回答