如何解决如何在objectBox flutter中连接表
在我的flutter项目中,我使用objectBox数据库做离线模块。在这个模块中,我有三个表ItemMaster表,customerMaster表和customerWiseStock 表。 我有 itemMaster 和 customerMaster 表的数据,我想获得 stock 这取决于 itemId(ItemMaster) 和 salestypeId(CustomerMaster)。
如何帮助别人?
这里我附上了图片以供参考。
解决方法
首先,重要的是要承认 ObjectBox 不是关系数据库,并且不能总是应用关系机制。
以下是您通常使用 ObjectBox 处理此问题的方法:
- 在实体之间定义 relations(您不需要为 ID 属性建模)
- 为主要结果类型定义查询并使用 links 来“加入”查询中的其他类型
- 从结果对象中,您可以从“主要类型”对象遍历关系以获取其他类型,从而获取任何属性。
注意:ObjectBox 在创建对象时非常快。因此,遍历相关对象通常不是问题,尤其是在 transaction 中完成时。
,从单独的“表”中混合“列”不是你可以用 ObjectBox 做的事情。它是静态类型的(并且具有静态模式),这意味着 Dart 对象直接映射到存储在数据库中的数据。您所描述的是您期望从 SQL 数据库获得的内容,具有动态结果(Dart 类型可能类似于 List<Map<String,dynamic>>
)。
如果您想使用对象数据库(不限于 ObjectBox),我建议您考虑在有意义的地方对数据进行反规范化。使用 ObjectBox 关系(链接),您应该能够实现相同的目标,但使用更少的类并且仍然以类型安全的方式。
如果您有一些具体的 Dart 代码(“实体”的类)和要查询的数据,我可以提供有关如何清理的建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。