[英]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.