簡體   English   中英

Firebase的正確數據結構

[英]Proper data structure for Firebase

我目前正在使用由Firebase提供的后端的IOS應用程序。 這是我第一次使用NOSql后端,希望獲得有關如何最好地構造數據的一些信息。 目前,該應用將成為基於用戶的應用,其中僅包含與Feed中顯示的每個用戶相關的詳細信息。 因此,如果他們將便箋發布到便箋區域,則只有他們才能訪問它。 不會共享此信息。 我目前如何設置數據的方式是擁有一個名為“ notes”的終結點和一個名為“ users”的終結點。 我計划將每個人的注釋都放在“注釋”中,然后在“注釋”的每個用戶下都有一個條目,並在主“注釋”區域中引用“ noteId”。 那么,僅將“ users”的子代作為“ notes”並帶有實際的便箋數據,是否更有意義?

notes >
    noteId >
        noteName
        noteDetails
    noteId >
        noteName
        noteDetails
    noteId >
        noteName
        noteDetails

user >
    notes >
         noteId
         noteId
         noteId (these would reference the note in notes)
    name 
    dateAdded

這就是當前數據的外觀。 這是最好的方法。 我有mySql背景,在完全了解noSql時遇到了麻煩。

如果您需要跨用戶訪問筆記,則將所有用戶的筆記保存在單個頂級節點中是有意義的。 但是請注意,您應該非常仔細地查詢所有注釋,因為如果您的應用真正成功,這很可能會成為瓶頸。

如果您只需要訪問特定用戶的注釋,則最好對每個用戶的注釋進行分區:

notes >
  user1 >
    noteId >
        noteName
        noteDetails
    noteId >
        noteName
        noteDetails
  user2 >
    noteId >
        noteName
        noteDetails

這種數據結構可以更好地隔離數據,但代價是沒有大量注釋。

除此之外,您還要嵌套應展平的數據:用戶配置文件和用戶注釋應位於單獨的頂級節點中:

users >
    userId >
         name 
         dateAdded
userNotes >
    userId >
         noteId
         noteId
         noteId (these would reference the note in notes)

使用此工具,您可以檢索用戶名列表,而無需獲取其所有注釋ID。 然后,當您需要顯示特定用戶的注釋時,只需訪問/userNotes/<uid>下的他們的注釋鍵,然后加載每個節點。

如果您不熟悉NoSQL數據建模,建議閱讀NoSQL數據建模 如果您來自關系/ SQL背景,建議您查看SQL開發人員的Firebase

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM