最近在写一个javaweb,谈谈数据表及后端处理逻辑

多对多,一对多

演员(多) -- 影片(多)

演员表actors

id name sex
1 name1 sex1
2 name2 sex2
3 name3 sex3

影片表movies

id url title actor_name
1 url1 title1 name1
2 url2 title2 name2
3 url3 title3 name3

演员影片中间表movie_actors

id actor_id movie_id
1 1 1
2 2 2
3 1 3

从上面三个表中可见,一个影片可以被多个演员演,一个演员可以演多个影片,因此演员与影片之间是多对多的关系,此时必须要有一个中间表来记录这两张表的关系

当业务中执行影片新增操作时,后端得到前端来的movie对象,把movie插到数据库中后,再根据movie的title属性来遍历整张movies表,得到与title相同movie对象,再新建一个movie_actors对象,根据前面返回的movie对象中的actor_name来查询演员表中与actors表中与之相对应的actor对象,此时有了两个对象,此时往movie_actors对象中设置movie的id和actor的id,此时该影片的插入操作结束

当业务中执行影片删除操作时,后端根据id先删除movie_actors表中movie_id与之相等的数据,再根据id删除该影片

影片(一) -- 剧集(多)

影片表movies

id url title
1 url1 title1
2 url2 title2
3 url3 title3

剧集表episodes

id movie_id url
1 1 url1
2 1 url2
3 3 url3
4 1 url4

在上面两个表中,可见一个影片可以有多个剧集,在表的设计中应该在多的一方设置一的一方的id属性

当业务中剧集在执行新增时,后端需要得到前端传到后端的movie_id和url才能实现新增操作.
新增,修改或删除后,需要得到该剧集所属的影片id来刷新当前剧集列表

当业务中影片删除时,需要先根据影片id删除剧集表中所有movie_id与之相等的的数据

posted @ 2024-05-11 15:23  在这颗星球上的旅行  阅读(39)  评论(0)    收藏  举报