Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果一个实体具有数组数据,如何在两个实体中建立关系_Javascript_Sql_Database_Sequelize.js - Fatal编程技术网

Javascript 如果一个实体具有数组数据,如何在两个实体中建立关系

Javascript 如果一个实体具有数组数据,如何在两个实体中建立关系,javascript,sql,database,sequelize.js,Javascript,Sql,Database,Sequelize.js,我在MYSQL数据库中有两个表nameusers和requests,下面是每个sequelize模型的json示例,我需要映射到我的模型: 用户: 和请求 { "id": 5, "requestUUID": "ab966593-95e5-4fd8-b433-01b116e3edee", "socialLinks": [ { "url": "https://synavos.com", "socialLinks": [ {

我在MYSQL数据库中有两个表name
users
requests
,下面是每个sequelize模型的json示例,我需要映射到我的模型:

用户:

请求

{
  "id": 5,
  "requestUUID": "ab966593-95e5-4fd8-b433-01b116e3edee",
  "socialLinks": [
    {
      "url": "https://synavos.com",
      "socialLinks": [
        {
          "platform": "facebook",
          "handle": "https://www.facebook.com/synavos/"
        },
        {
          "platform": "instagram",
          "handle": "https://www.instagram.com/synavosbusiness/"
        },
        {
          "platform": "youtube",
          "handle": "https://www.youtube.com/channel/UCrZxxAV_OiRb9N3wIe3N94w"
        }
      ]
    },
    {
      "url": "https://www.confiz.com/",
      "socialLinks": [
        {
          "platform": "facebook",
          "handle": "http://www.facebook.com/ConfizCareers"
        },
        {
          "platform": "youtube",
          "handle": "https://www.youtube.com/channel/UCG64lwoDIbwtkZK8E_s140A"
        }
      ]
    }
  ]
}

当一个请求属于一个用户时,一个用户可以有多个请求。

如果关系是一对一(当一个请求属于一个用户时,用户可以有多个请求),则可以添加到
请求
用户id字段。然后,您可以通过以下方式搜索用户的所有请求:
SELECT*FROM requests where user\u id=?
[user.id]
,如果要查找特定请求的用户,请使用
SELECT all FROM users where id=?
[request.user\u id]

如何处理请求表中的
socialLinks
数组?任何数组都意味着您还需要一个表。您应该为
socials
增加一个表,其中包含
id
url
request\u id
。还有一个表,用于链接
链接
,其中包含
id
social\u id
platform
handle
然后
SELECT*FROM users LEFT JOIN requests on users.id=requests.user\u id LEFT JOIN socials on request.id=social.request\u id LEFT JOIN links on social.id=links.social\u id
如果您希望它出现在对象结构中,您应该遍历用户并获取每个请求。迭代每个社交的请求和获取,以及每个社交的链接
{
  "id": 5,
  "requestUUID": "ab966593-95e5-4fd8-b433-01b116e3edee",
  "socialLinks": [
    {
      "url": "https://synavos.com",
      "socialLinks": [
        {
          "platform": "facebook",
          "handle": "https://www.facebook.com/synavos/"
        },
        {
          "platform": "instagram",
          "handle": "https://www.instagram.com/synavosbusiness/"
        },
        {
          "platform": "youtube",
          "handle": "https://www.youtube.com/channel/UCrZxxAV_OiRb9N3wIe3N94w"
        }
      ]
    },
    {
      "url": "https://www.confiz.com/",
      "socialLinks": [
        {
          "platform": "facebook",
          "handle": "http://www.facebook.com/ConfizCareers"
        },
        {
          "platform": "youtube",
          "handle": "https://www.youtube.com/channel/UCG64lwoDIbwtkZK8E_s140A"
        }
      ]
    }
  ]
}