美文网首页
json-server 级联删除与键

json-server 级联删除与键

作者: 这是我用来记录技术的一个博客 | 来源:发表于2017-09-25 13:18 被阅读72次

json-server的增删改查 官网已经十分详尽,不多说

但是它没告诉我级联操作和主键相关的东东啊。。。也许后端人员清楚,但是后端谁用json-server啊。。。。我服

主键问题

拿官网的json来分析:

{
  "posts": [
    { "id": 1, "title": "json-server", "author": "typicode" }
  ],
  "comments": [
    { "id": 1, "body": "some comment", "postId": 1 }
  ],
  "profile": { "name": "typicode" }
}

我们需要知道的是:
所有的 一级 都是表。 如 posts comments
表中的id就是主键,这是默认的
把表的复数形式去掉,加上“Id”,在别的表中引用,就是外键
那么我们就知道了 posts和comments是如何关联的了

级联删除问题

级联删除的定义为:

外键的级联删除:如果父表中的记录被删除,则子表中对应的记录自动被删除
父表——被外键引用的表
子表——引用父表中的键作为外键的表

父表是posts
子表是comments

我来运行一下 delete http://localhost:3000/posts/1

Paste_Image.png

其json文件变成了

{
  "posts": [],
  "comments": [],
  "profile": {
    "name": "typicode"
  }
}

由此可见
json-server是可以做级联删除的

是否支持多级级联删除

我们的假数据如下:

{
  "grandFathers": [
    {
        "id":1,
        "name":"jack-grandFather"
    },
    {
        "id":2,
        "name":"tom-grandFather"
    }
  ],
  "fathers": [
    {
        "id":1,
        "name":"jack-father",
        "grandFatherId":1
    },
    {
        "id":2,
        "name":"tom-father",
        "grandFatherId":2
    }
  ],
  "sons": [
    {
        "id":1,
        "name":"jack",
        "fatherId":1
    },
    {
        "id":2,
        "name":"tom",
        "fatherId":2
    }
  ]
}

然后我删除一条grandFather

Paste_Image.png

最后的json为

{
    "grandFathers": [
        {
            "id": 2,
            "name": "tom-grandFather"
        }
    ],
    "fathers": [
        {
            "id": 2,
            "name": "tom-father",
            "grandFatherId": 2
        }
    ],
    "sons": [
        {
            "id": 1,
            "name": "jack",
            "fatherId": 1
        },
        {
            "id": 2,
            "name": "tom",
            "fatherId": 2
        }
    ]
}

由此可见
json-server不支持多级级联删除

搜索 标签
http://localhost:3000/posts?label=aaa

相关文章

  • json-server 级联删除与键

    json-server的增删改查 官网已经十分详尽,不多说 但是它没告诉我级联操作和主键相关的东东啊。。。也许后端...

  • 草稿四

    ● 外键的删除操作---on_delete参数指定 <1> models.CASCADE---级联删除外键表的字段...

  • mysql 级联删除,外键约束

    对表t_user和t_book外键关联。在t_book中设置外键,如图示。其中: RESTRICT:创建约束。删除...

  • Hibernate 关联关系映射

    本文包括:1、一对多结构的准备2、双向关联与单向关联3、级联保存4、级联删除5、cascade 属性——级联6、i...

  • 级联删除

    实现 级联删除(cascade delete)隶属于约束条件(constraint),因此,级联删除需要在约束条件...

  • 创建外键、更新限制、删除级联

    users表 blogs 表 在blogs表中创建外键 更新限制:在新增一个博客,userid是一个不存在的用户,...

  • iview踩坑

    1、iview三级联动,删除效果实现 需求:省市区的三级联动,并且有删除效果,执行删除时,后面的一项也需要删除;当...

  • 数据保存(四) 立即执行中删除

    1.级联删除子表 删除数据的同时,删除引用这条记录的子表的数据,可以通过在数据表设计中,对于引用字段,勾选上级联删...

  • EF Core级联删除的设定

    EF6和EF Core都支持级联删除。EF6要禁止级联删除是在数据库上下文的OnModelCreating方法中设...

  • EFCore级联删除

    可以利用级联删除去掉一条记录相关的所有记录,就不需要一个个去删除关联表记录。之所以注意到这个是因为现在项目中的业务...

网友评论

      本文标题:json-server 级联删除与键

      本文链接:https://www.haomeiwen.com/subject/deorextx.html