在单个数据库字段中存储逐行数据

时间:2012-11-02 14:33:32

标签: android mysql sql database

在MySQL数据库中,我有一个表,其中有一个名为features的字段。我有近20个功能存储在那里。我试图从我的Android移动应用程序中检索这些功能。在应用程序中,它必须逐行显示(总共20行)。无论如何通过做\n这样的事情来存储该单个字段中的20个特征?或者无论如何通过在我的Android应用程序中执行某些操作来获取新行中的这些功能?

3 个答案:

答案 0 :(得分:2)

首先,这几乎肯定是一个糟糕的想法......通过将功能存储在一个字段中,您很难进行查询和管理。例如,查找功能“x”可用的所有记录需要您以某种方式解析功能字段,这几乎肯定不会使用列上的任何索引。

如果您别无选择,则有两种选择:将功能存储为某种字符串表示形式(XML,JSON,CSV),或将功能存储为位标志。

我强烈建议使用结构化文本格式 - JSON可能是最轻量级的 - 因为它是人类可读的,并且易于解析。

答案 1 :(得分:0)

假设您已将代码设置为运行查询并检索数据,则应将检索到的数据存储到集合(数组或列表)中并循环遍历每个项目,并在屏幕上显示所需的数据。 / p>

显示数据无论如何都可以工作,你可以为每条记录添加一个按钮,在文本字段中写入一行文字(这可能对你的情况有好处),在表格中创建一个单元格等等......

我不会将所有数据放入同一记录中,如果您决定添加针对单个功能定制的字段,则可能会变得混乱。另外,如果您将所有功能组合到一个记录中并决定稍后添加或删除功能,则必须进行字符串操作。

答案 2 :(得分:-1)

我会选择 LONGTEXT 。 TEXT和BLOB可容纳64K数据,而 LONGTEXT LONGBLOB (主要用于二进制数据)最多可容纳4GB。

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

是的,/ n适用于行分隔