我是否总是需要复制和嵌套数据才能在 noSQL (Firebase) 中引用它?
Do I always need to duplicate and nest data to refer to it in noSQL (Firebase)?
我并没有和 SQL 一起工作过很多次,但显然足以被它的爪子抓住,因为我对如何引用 no[=44= 中的东西感到很茫然].
假设我有一个显示 books
的页面,然后是 users
可以将任意数量的书籍保存到他们自己的个人图书馆(本质上是 "liking" 他们)的功能。
一本书包含作者、标题、页数、大纲、人物列表等
在 SQL 中,我需要在 books
和 users
之间设置连接 table,但在 SQL 中(特别是 Firebase,因为这就是我的开始)没有这样的东西,这让我感到困惑。我被警告嵌套数据,但这里似乎有必要将 books
嵌套在 users
下(反之亦然?)并且有很多重复数据。
出于几个原因,这对我来说似乎很恶心。一是迭代用户需要大量额外时间,因为他们的整个库也需要迭代。其次,我需要复制很多数据,因为我想把他们图书馆里的书完整地展示出来,连同简介和人物列表等
我真的需要制作另一个片段,称为 library
,我在其中列出 users
并将它们的 books
嵌套在它们下面吗?这是一种有效的方法吗?
还是我错过了一些重要的东西?即使在 noSQL(包括 Firebase)中,我真的可以像使用外键一样引用数据吗?
我 运行 遇到了来自 SQL 背景的相同问题。下面的示例结构是您的 noSQL 的一个非常高级的视图,在本例中是 Firebase,可能最好看起来像:
- Firebase root
- Users
- $userId
- name
- email
- books
- $bookId
- Books
- $bookId
- title
- author
...以及您如何访问图书的一个非常简单的想法:
var ref = new Firebase();
ref.child('Books').child($bookId).push({/* book info */});
总而言之,这些 $userId
和 $bookId
字段对于在整个应用程序中引用数据变得非常重要。
我并没有和 SQL 一起工作过很多次,但显然足以被它的爪子抓住,因为我对如何引用 no[=44= 中的东西感到很茫然].
假设我有一个显示 books
的页面,然后是 users
可以将任意数量的书籍保存到他们自己的个人图书馆(本质上是 "liking" 他们)的功能。
一本书包含作者、标题、页数、大纲、人物列表等
在 SQL 中,我需要在 books
和 users
之间设置连接 table,但在 SQL 中(特别是 Firebase,因为这就是我的开始)没有这样的东西,这让我感到困惑。我被警告嵌套数据,但这里似乎有必要将 books
嵌套在 users
下(反之亦然?)并且有很多重复数据。
出于几个原因,这对我来说似乎很恶心。一是迭代用户需要大量额外时间,因为他们的整个库也需要迭代。其次,我需要复制很多数据,因为我想把他们图书馆里的书完整地展示出来,连同简介和人物列表等
我真的需要制作另一个片段,称为 library
,我在其中列出 users
并将它们的 books
嵌套在它们下面吗?这是一种有效的方法吗?
还是我错过了一些重要的东西?即使在 noSQL(包括 Firebase)中,我真的可以像使用外键一样引用数据吗?
我 运行 遇到了来自 SQL 背景的相同问题。下面的示例结构是您的 noSQL 的一个非常高级的视图,在本例中是 Firebase,可能最好看起来像:
- Firebase root
- Users
- $userId
- name
- email
- books
- $bookId
- Books
- $bookId
- title
- author
...以及您如何访问图书的一个非常简单的想法:
var ref = new Firebase();
ref.child('Books').child($bookId).push({/* book info */});
总而言之,这些 $userId
和 $bookId
字段对于在整个应用程序中引用数据变得非常重要。