会议室-在运行时(在用户端)添加或删除列?

时间:2019-03-19 19:16:28

标签: android excel database sqlite

我在Android应用程序中使用aria-hidden数据库。我如何设置表架构是非常基本的。

该应用程序涉及与数据收集和导出到具有与某些用户相关的列的Excel工作表相关的内容(如附件所示)。

Image of the sample export from the app

因此,当然,这些数据将在单个表中。

我想添加一个选项来添加或删除列(添加 Activity n 并删除 Activity m ,因为在删除当前表并创建新表的操作中将要删除数据新架构的表格。

然后,我将需要DAO接口的另一种方式来按索引访问每个单元,而又不知道单元的实际位置。

我认为的数据应存储在单独的表中? 关于如何实现的任何想法? 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将基于您的项目连接的列声明为@Entity。因此,一个UID可以有多个活动,但一个便笺和一个日期。

@Entity
public class Uid {
    @PrimaryKey //AutoGenerate if You want
    public int uID;
    public String notes;
    public String date;
}

和活动班级

@Entity(foreignKeys = @ForeignKey(entity = Uid.class,
        parentColumns = "uID",
        childColumns = "parentID",
        onDelete = CASCADE, onUpdate = CASCADE))
public class Activities {
    @PrimaryKey(autoGenerate = true)
    public int id;
    public int parentID;
    public int someOtherNumber;
    }

现在,如果您删除UID或对其进行更新,则所有活动将遵循该行为。您还可以根据需要添加和删除活动。就像在您的Excel中一样。这样,您可以要求dao将与uID连接的活动返回为“列表”,在列表中您可以通过其索引选择一个值。