Комната - добавить или удалить столбцы во время выполнения (на стороне пользователя)? - PullRequest
1 голос
/ 19 марта 2019

Я использую базу данных room в своем приложении для Android. Это довольно простой способ настройки схемы таблицы.

Приложение о чем-то связанном со сбором и экспортом данных в лист Excel, в котором есть столбцы, относящиеся к некоторым пользователям (показано в приложении).

Image of the sample export from the app

Так что, конечно, эти данные будут в одной таблице.

Я бы хотел добавить опцию для добавления или удаления столбцов (добавить Активность n и удалить Активность m ) во время во время выполнения. Данные не будут важны, если они будут потеряны, приложение попросит пользователя сначала экспортировать данные в лист Excel , потому что они будут удалены во время операции удаления текущей таблицы и создания новой таблица с новой схемой .

Кроме того, мне понадобится другой способ для интерфейсов DAO для доступа к каждой ячейке по индексу, не зная, что на самом деле является ячейкой.

Я думаю, данные столбцов должны храниться в отдельной таблице? Есть идеи о том, как этого добиться? Спасибо.

1 Ответ

1 голос
/ 19 марта 2019

Вы можете объявить Ваши столбцы как @Entity, которые связаны на основе Вашего проекта.Таким образом, 1 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 или обновите его, все действия будутследовать этому поведению.Вы также можете добавлять и удалять действия, когда хотите.Как в вашем превосходстве.Таким образом, вы можете попросить dao вернуть ваши действия, связанные с uID, в виде списка, где вы выбираете одно значение по его индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...