2015-11-13 63 views
3

考慮這個問題:損失指針

var master = { 
    type:"master" 
}; 

var slave = { 
    type:"slave" 
}; 

var array = [ master, slave, slave ]; 

現在,如果我會想,超過移動到服務器,以拯救那些到DB o.th.,指針關係會迷路,只要我使用像JSON或XML這樣的seralisation。

例如,服務器腳本怎麼知道slaveslave只是相同的對象?

例如這將創建三個不同的DB行,其中一個具有列type中的「主」,以及type列中具有「從」的兩個不同行。

你如何處理它?它是否在某些情況下被廣泛使用?

+0

但不在分貝可供這種情況下唯一約束?也不能有一個主人有多個奴隸? – Rajesh

+0

'slave's只是序列化後兩個等於JSON的字符串部分。在不提供額外數據的情況下實現你想要的明顯不可能,比如唯一的ID。 「 –

+1

」服務器腳本怎麼知道,那個奴隸和奴隸只是同一個對象?「不要責怪JSON甚至在JS中的數組將不同對待他們獲得一個對象來存儲他們 – CY5

回答

2

我不確定是否有簡單的方法來完成你想要的。我會考慮做以下幾點:

  • 有一個「獲得或製造」方法管理是否創建了對儲蓄object列一個新的記錄,並在object.type("array", "object.type")取決於您使用添加唯一約束案件。

  • 使用基於RFC-6901庫,如json-pointer完成以下任務:

    //on the client 
    var obj = {}; 
    pointer.set(obj, '/example/bla', 'hello'); 
    
    //on the server 
    var obj = { 
        example: { 
         bla: 'hello' 
        } 
    }; 
    
    pointer.get(obj, '/example/bla'); 
    
+0

需要一些時間來深入研究RFC-6901。指針是否考慮在那裏? –

+0

RFC-6901是用於在JSON中保留指針信息的標準。 – pygeek