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
其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
最后的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不支持多级级联删除