Mysql json数据中的关系与数据库中的实际关系

Mysql json数据中的关系与数据库中的实际关系,mysql,database,Mysql,Database,我以为我知道,但后来我卡住了,变得困惑。我想问的是,在json中“思考关系”是可能的,还是只有在设计后端时才能做到 JSON不支持对象引用,但JavaScript对象支持。您甚至可以存储函数,因为它们是头等公民 但是要小心无限循环

我以为我知道,但后来我卡住了,变得困惑。我想问的是,在json中“思考关系”是可能的,还是只有在设计后端时才能做到

JSON不支持对象引用,但JavaScript对象支持。您甚至可以存储函数,因为它们是头等公民

但是要小心无限循环<(鲍勃认识安娜,安娜认识鲍勃,鲍勃认识安娜,…)

在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

如果我想将用户和他们的朋友分开作为两个独立的表呢?我知道如何访问json的数据。您似乎正在使用关系数据库系统(MySQL)。关系数据库实际上不善于存储关系。要创建一个n:m关系,您需要一个额外的表来存储一个ID和两个外键——用户ID。如果Anna认识Bob和Charlie,则在该表中添加两条记录(1,“Anna”,“Bob”),(2,“Anna”,“Charlie”)。更多信息请参见。是的,我知道。我想问一下开发应用程序的流程如何,尤其是单页应用程序。我看到许多ppl准备json数据并创建前端。我想知道他们的数据库逻辑是在json中完成的,还是他们以后设计关系的?我假设大多数SPA不使用关系数据库,而是使用基于文档的数据库,如MongoDB或CouchDB。它们通常本机支持JSON,基于文档的设计非常适合JSON格式。关系可以通过引用另一个文档id来建立,但其好处是将用户与其他人的所有关系作为文档属性放在一个列表中。如果您想使用MySQL,那么有必要阅读有关对象关系映射器(ORM)的内容。使用带有持久层的PHP+MySQL更方便,持久层管理数据映射和评估。
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