0

我有一个包含 93 列的 SQLite 数据库表

是否可以将 SQLite 列创建为数组或 ArrayList?

而不是将每一行输入为 A0、A1、... 到 A93,

像这样创建数组

private static final String[] AList;

我知道可以通过使用数组和 for 循环来实例化每个元素,为从 A0 到 A99 的每个“A”列分配一个字符串值,

但是,通过使用 for 循环和数组来实际创建变量 A0 到 A99 似乎是不可能的

有任何想法吗?

使用的代码示例

public class DatabasePrototype {

public static final String DATABASE_NAME = "database";
public static final String SMALL_TANK_CHECK_RESULT = "small_tank_check_result";
public static final String LARGE_TANK_CHECK_RESULT = "large_tank_check_result";

public static final String CLEAN_TANK_RESULT = "clean_tank_result";
public static final int DATABASE_VERSION = 1;
public static final String _ID = "_id";

// variables for LARGE_TANK_CHECK_RESULT
public static final String A0 = "a0";
public static final String A1 = "a1";
public static final String A2 = "a2";
public static final String A3 = "a3";
public static final String A4 = "a4";
public static final String A5 = "a5";
public static final String A6 = "a6";
public static final String A7 = "a7";
public static final String A8 = "a8";
public static final String A9 = "a9";... on to 93 as last variable

 private static final String SCRIPT_CREATE_DATABASE1 =
        "CREATE TABLE IF NOT EXISTS " + LARGE_TANK_CHECK_RESULT + " (" + _ID +      " INTEGER PRIMARY KEY AUTOINCREMENT, " +  
        A0 + " TEXT, " + A1 + " TEXT, " + A2 + " TEXT, " + A3 + " TEXT, " +A4 + " TEXT, " + A5 + " TEXT, " +A6 + " TEXT, " +
        A7 + " TEXT, " + A8 + " TEXT, " + A9 + " TEXT, " + A10 + " TEXT, " + A11 + " TEXT, " + A12 + " TEXT, " +A13 + " TEXT, " +
        A14 + " TEXT, " + A15 + " TEXT, " + A16 + " TEXT, " + A17 + " TEXT, " +A18 + " TEXT, " + A19 + " TEXT, " +A20 + " TEXT, " +
        A21 + " TEXT, " + A22 + " TEXT, " + A23 + " TEXT, " + A24 + " TEXT, " +A25 + " TEXT, " + A26 + " TEXT, " +A27 + " TEXT, " +
        A28 + " TEXT, " + A29 + " TEXT, " + A30 + " TEXT, " + A31 + " TEXT, " +A32 + " TEXT, " + A33 + " TEXT, " +A34 + " TEXT, " +
        A35 + " TEXT, " + A36 + " TEXT, " + A37 + " TEXT, " + A38 + " TEXT, " +A39 + " TEXT, " + A40 + " TEXT, " +A41 + " TEXT, " +
        A42 + " TEXT, " + A43 + " TEXT, " + A44 + " TEXT, " + A45 + " TEXT, " +A46 + " TEXT, " + A47 + " TEXT, " +A48 + " TEXT, " +
        A49 + " TEXT, " + A50 + " TEXT, " + A51 + " TEXT, " + A52 + " TEXT, " +A53 + " TEXT, " + A54 + " TEXT, " +A55 + " TEXT, " +
        A56 + " TEXT, " + A57 + " TEXT, " + A58 + " TEXT, " + A59 + " TEXT, " +A60 + " TEXT, " + A61 + " TEXT, " +A62 + " TEXT, " +
        A63 + " TEXT, " + A64 + " TEXT, " + A65 + " TEXT, " + A66 + " TEXT, " +A67 + " TEXT, " + A68 + " TEXT, " +A69 + " TEXT, " +
        A70 + " TEXT, " + A71 + " TEXT, " + A72 + " TEXT, " + A73 + " TEXT, " +A74 + " TEXT, " + A75 + " TEXT, " +A76 + " TEXT, " +
        A77 + " TEXT, " + A78 + " TEXT, " + A79 + " TEXT, " + A80 + " TEXT, " +A81 + " TEXT, " + A82 + " TEXT, " +A83 + " TEXT, " +
        A84 + " TEXT, " + A85 + " TEXT, " + A86 + " TEXT, " + A87 + " TEXT, " +A88 + " TEXT, " + A89 + " TEXT, " +A90 + " TEXT, " +
        A91 + " TEXT, " + A92 + " TEXT, " + A93);";
4

1 回答 1

0

如果您甚至必须考虑数组,这意味着您的数据库模式不适合您的任务。

正确的解决方案是规范化您的架构。在您的情况下,这可能意味着创建从表,将您的A1, A2, ... 字段分别存储为一行并链接回主表记录。

这样做有以下好处:

  1. 您可以支持任意数量的原始An值 - 它可以是 0,也可以是 1000。
  2. 从表将可以快速搜索(前提是您创建了适当的索引)。
  3. 您的架构将更加面向未来 - 不太可能需要修改。
  4. 您的查询将更简单、更短,但是它们将是 2 个表的连接,而不是现在的 1 个。
于 2013-06-20T02:26:22.557 回答