Я учусь создавать приложение, в котором пользователь может создавать новые темы и хранить свои заметки (домашнее задание и прочее) с датами.Я чувствую, что хочу создать новую таблицу для каждой темы, которую пользователь создает, и управлять ими отдельно.Это хорошая практика?
Я уже пытался создать одну таблицу, в которой «ID» - это имя субъекта, а затем сохранить примечания и дату в следующих столбцах.Тем не менее, я чувствую, что чтение из таблицы будет трудоемким и сложным в управлении.Я также попытался создать статическую таблицу с именами субъекта, а затем создать таблицы из имен, сохраненных для каждого субъекта.
Пример ситуации
Я создал тему - "Английский"
затем я динамически создаю таблицу для «английского» с двумя столбцами, «заметками» и «датой», а затем добавляю к ней материал
Затем предположим, что мы добавляем еще одну тему - «Наука»
, затем я снова динамически создаю таблицус названием «Наука» с двумя столбцами выше.
Я храню названия этих таблиц («Английский», «Наука») в отдельной таблице.
Вот как я сейчас это делаю
val CREATE_SUB_NAME_TABLE = "create table " + DBStructure.TABLE_SUB_NAMES + " (" + DBStructure.KEY_SUB_NAME + " Text)"
val DROP_TABLE_QUERY = "drop table if exists "
private fun queryCreateSubjectTable(subName : String) : String {
return "create table " + subName + " (" + DBStructure.KEY_EVENT_NAME + " Text, " + DBStructure.KEY_EVENT_DATE + " Text, " +
DBStructure.KEY_EVENT_MONTH + " Text, " + DBStructure.KEY_EVENT_YEAR + " Text)"
}
fun addSubjectName(subName: String){
val db = this.writableDatabase
val values = ContentValues()
values.put(DBStructure.KEY_SUB_NAME, subName)
db.insert(DBStructure.TABLE_SUB_NAMES, null, values)
createSubjectTable(subName, db)
db.close()
}
private fun createSubjectTable(subName : String, db : SQLiteDatabase){
db.execSQL(queryCreateSubjectTable(subName))
}
не связывайтесь с атрибутами таблицы ... они предназначены для тестирования.