2012-04-16 33 views
0

目前,開發需要在服務器之間同步數據的應用程序。該應用大量使用SQLite,因此我們轉移到原始的sqlite並決定使用FMDatabase。我們的表是非規範化的,沒有密鑰,因爲我們不管理數據狀態,只是收集數據併發送它。我們正在以某個時間間隔(從服務器獲取並插入新內容)更新表,但將數據發送到服務器更爲常見。FMDatabase:是否安全留下失敗的插入(違反唯一PK鍵)?

來自服務器的數據是帶有id值(char類型的GUID值)的完整記錄,所以我們已經爲這些表構成了PK鍵,這些鍵由這些id列組成。問題是,從服務器獲取數據時,我只需要插入新記錄,而目前我正在使用這些id值插入數據。由於id列上的唯一PK約束,一些記錄被插入(新)並且一些記錄失敗。對我來說,這非常好,只是在控制檯中觸發消息(違反了唯一鍵)並且不確定是否會影響性能等等。我可以在插入新記錄之前循環記錄,找到現有記錄並僅插入真正的新記錄,但我認爲這是浪費。

此外,我可以做明確的內部INT ID(PK索引更快),但我們的表與FK無關,所以它會是多餘的。對此有何想法?

回答