gpt4 book ai didi

android - Realm 数据库多表

转载 作者:搜寻专家 更新时间:2023-11-01 09:24:31 26 4
gpt4 key购买 nike

虽然我阅读了 Realm 文档,但我对表和 Realm 的概念感到困惑。据我所知,一个 Realm 就像一个表,但它可以存储多个模型。问题是,我想要多个表(其中一些只包含 1 个类的对象,一些只包含多个类的对象)但我不知道如何管理多个 Realm 。我希望我的“数据库”类成为 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 的核心概念感到困惑,但文档也没有帮助。如果能清楚地解释如何正确管理不同的表并对其进行初始化,我们将不胜感激。

附言。我也找到了这个答案,但感觉也不对: https://stackoverflow.com/a/40547703/7893941

最佳答案

几点:

每个 Realm 配置将被转换为一个数据库。扩展 realobject 的每个类都将转换为一个表。这些类的每个实例都将转换为一行(如果您保存它)。

首先尝试确定您需要多少个数据库和表? (99% 的应用程序使用 1 个数据库)。您可以阅读并遵循数据库规范化方法,然后尝试使用 Realm 实现您需要的内容。

关于android - Realm 数据库多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51734750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com