gpt4 book ai didi

android - 在没有预定义结构关系的情况下在 Realm 数据库上实现一种形式的连接查询

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:58:50 25 4
gpt4 key购买 nike

我使用过 SQL 引擎和一些 noSQL 引擎以及 indexdb,可以在不定义外键或其他东西的情况下跨多个表抓取数据。

我的问题是,是否可以在不定义结构中任何特殊关系的情况下进行查询以跨 Realm 中的对象表抓取数据?为了更好地表达我的 self ,我将发布我想用 Realm 实现的示例代码,以便您可以帮助我。

使用 dexie 实现,一个 indexdb 包装器

 db.quote_items.where('quote_id').equals(quote_id).then(function(a){
db.products.where('id').equals(quote_id.product_id).then(function(){
list.push({'id': a.id, 'product_name':a.product_name, 'product_code': a.product_code, 'quantity':a.quantity, 'tax':a.tax, 'unit_price':a.unit_price, 'val_tax':a.val_tax, 'discount_val':a.discount_val, 'gross_total':a.gross_total, 'details ':b.details });

}).catch(function (e) { console.log(e); alert("Sorry, Something went wrong"); })
}).catch(function (e) { console.log(e); alert("Sorry, Something went wrong");})

在mysql中的实现

    SELECT quote_items.id AS id, quote_items.product_name AS product_name ...... FROM quote_items, products WHERE quote_items.quote_id = quote_id AND products.id = quotes_items.produc_id 

Android 版 Realm.io 中的预期实现

  RealmResults result = realm.where(quote_items.class)
.equalTo("quote_id", quote_id).equalTo("quote.product_id", quote_id).equalTo("product.product_id", "quotes.itemkey").findAll()

最佳答案

虽然 Realm 是一个 NoSQL 数据库,但它仍然有一个模式,因此您不能在同一个查询中返回多个类。

您所要求的可以通过具有共享字段的抽象父类(super class)来解决。这尚未实现,但您可以在此处关注其进展情况:https://github.com/realm/realm-java/issues/761

此外,JOINS 在 Realm 中不存在,因为它不是关系数据库,而更像是图形数据库。对其他对象的引用就像对象引用一样。您可以在此处阅读更多信息:https://realm.io/docs/java/latest/#relationships

关于android - 在没有预定义结构关系的情况下在 Realm 数据库上实现一种形式的连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31628574/

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