0
我以爲我知道但後來我卡住了,變得困惑。我想問一下,是否有可能在json中「思考關係」,或者只有當你設計你的後端才能完成?json數據中的關係與db中的實際關係
我以爲我知道但後來我卡住了,變得困惑。我想問一下,是否有可能在json中「思考關係」,或者只有當你設計你的後端才能完成?json數據中的關係與db中的實際關係
JSON不支持對象引用,但JavaScript對象可以。你甚至可以存儲功能,因爲他們是一流的公民。
http://en.wikipedia.org/wiki/JSON#Object_references
var anna = {name: "Anna"};
var bob = {name: "Bob", knows: [anna]};
var charlie = {name: "Charlie", knows: [anna, bob]}
anna.knows = [charlie, bob];
// 'Bob'
alert(charlie.knows[0].knows[1].name)
// -------------------------------------------------
var call = function(destination) {
alert(this.name + " calls " + destination.name);
}
bob.call = call;
// 'Bob calls Charlie'
bob.call(charlie);
但要注意無限循環!
(鮑勃知道安娜,安娜知道鮑勃,鮑勃知道安娜,...)
在JSON中,關係只能用值(這是理想的記錄的唯一ID)表示。你基本上覆制了這個名字,並且需要用這個名字查找這個條目來找到它所指的。
var ob_from_json = JSON.parse('
{
"bob": {"name": "Bob", "knows": ["anna"]},
"anna: {"name": "Anna", "knows": ["bob"]}
}
');
// 'Anna'
ob_from_json[ob_from_json["bob"].knows[0]].name
如果我想將用戶和他們的朋友分開爲2個獨立的表格,該怎麼辦?我知道如何訪問json的數據。 – noob
您似乎正在使用關係數據庫系統(MySQL)。關係數據庫實際上在存儲關係方面不好。要創建一個n:m關係數據庫,您需要一個存儲ID和兩個外鍵的附加表格 - 用戶標識。如果安娜知道鮑勃和查理,則在該表格中添加兩條記錄(1,「anna」,「bob」),(2,「anna」,「charlie」)。見例如http://stackoverflow.com/questions/260441/how-to-create-relationships-in-mysql更多。 – CoDEmanX
是我知道的。我想問一下如何開發應用程序,尤其是單頁應用程序。我看到很多人員準備他們的json數據並創建它的前端。我不知道他們的數據庫邏輯是在他們的json中完成的,還是他們後來設計了關係? – noob