我正在使用xcode來編寫iOS應用程序。我想在應用中設置一個用戶可以留言的部分。對於如何存儲特定帖子的評論集,我有點困惑。我基本上只需要爲每個評論保存三件事。用戶的ID,評論本身和評論的數量(即發佈該帖子的第一條評論,或第二,第三等...),但我不知道如何最好地將其實際保存到數據庫。我使用parse-server作爲主數據庫,問題是雖然此數據庫可以存儲對象的多種質量,但不能保存字典。 (我本來想保存信息爲):
期望中的戰略(但不工作)如何構建數據以保存用戶評論?
var commentCount = 5 //will hold value of number of comments for post
var commentString = "hello"
var commenterID = "e1das312"
var commentSavingDict = [Int: [String]]()
func addComment(){
commentCount = commentCount + 1
commentSavingDict[commentCount] = [commenterID, commentString]
}
的問題是,在解析儀表盤只有陣列可以被保存,而不是詞典作爲commentSavingDict
是。我認爲只是節省了串大抵如此:
第二項策略
var commentCount = 5 //will hold value of number of comments for post
var commentString = "hello"
var commenterID = "e1das312"
var commentSavingArray = [String]()
func addComment(){
commentCount = commentCount + 1
commentSavingArray.append("\(commentCount) :::: \(commentString) :::: \(commenterID)")
}
這種方法是有效的,但需要拉從陣列中的每個條目,然後在::::
與.split
分隔字符串將每個部分傾倒成3個獨立的陣列,然後以這種方式利用它們。這需要更長的時間,因爲拆分需要客戶端。
第三種策略
最後的辦法,我設想也只是讓每個評論是在數據庫中它自己的對象,有四個不同的特質:評論的數量,評論,帖子的ID,和用戶的ID。這也會起作用,但它現在使每個評論成爲它自己的對象,而不是作爲特定帖子的所有評論陣列(作爲單個對象),我認爲這樣做效率低下並且很快就會佔用空間。
由於我無法保存字典,有沒有比我所建議的更好的方法來解決這個問題?還是我錯誤地分析了我提出的那些?
感謝您的回覆和指南的鏈接!但是,你能評論我對它的擔憂嗎?是否通過與其他方法相比增加對象的數量來爲每個評論創建單獨的對象而不會使數據庫停滯不前? –
想想這樣 - 你不會創建任何更多或更少的對象,只是因爲你每行存儲一行而不是一行。它仍然是相同數量的信息。事實上,使用單獨的對象可能在數據層面上更有效率,因爲這是它期望的結構,並且已經進行了優化。 –