Я запутался в концепции таблиц и областей, хотя я читал документацию по области. Насколько я знаю, область похожа на таблицу, но в ней может храниться несколько моделей. Проблема в том, что я хочу иметь несколько таблиц (некоторые из них просто содержат объекты 1 класса, а некоторые — несколько классов), но я не знаю, как управлять несколькими областями. Я хочу, чтобы мой класс «База данных» был оболочкой для RealmDatabase, и я хочу, чтобы в нем было несколько таблиц, например, таблица для «новых песен» и таблица для «лучших песен». Итак, что я сделал:
public class Database {
//tables that I want to have
public enum RealmType {
SONGS_NEW, SONGS_BEST, PLAYLISTS_BEST, PLAYLISTS_MINE, PLAYLISTS_OTHERS, ALBUMS_SPECIAL, NEWS, FEED
}
private static final String TAG = "Database";
Context context;
//A realm object for each table
Realm profileRealm;
Realm songs_newRealm;
Realm songs_bestRealm;
//and so on...
// as I didn't know how to differentiate between Realms (all of them are created with Realm.getDefaultInstance(), and I think they are just one Realm. so I created a class for different configs )
private static class RealmConfigs {
static RealmConfiguration songs_newConfig;
static RealmConfiguration songs_bestConfig;
//and so on..
public RealmConfigs() {
config();
}
private static void config() {
songs_newConfig = new RealmConfiguration.Builder()
.name("songs_new.realm")
.deleteRealmIfMigrationNeeded()
.build();
songs_bestConfig = new RealmConfiguration.Builder()
.name("songs_best.realm")
.deleteRealmIfMigrationNeeded()
.build();
}
}
}
Но это просто неправильно. Я знаю, что запутался в основных концепциях Realm, но документация тоже не помогла. Было бы полезно получить четкое объяснение того, как правильно управлять различными таблицами и их инициализировать.
PS. Я также нашел этот ответ, но он тоже не кажется правильным: https://stackoverflow.com/a/40547703/7893941 а>