我的数据库设计有多对多,其中连接表有一对多。如下所示:
Exercise
ID
Name
Templates (Many to Many with Template through TemplateExercise)
...
Template
ID
Exercises (Many to Many with Exercise through TemplateExercise)
Name
...
TemplateExercise
"""
Many-to-many relationship for Template and Exercise
"""
ID
ExerciseID
TemplateID
ExerciseSets (One to Many with ExerciseSet)
...
ExerciseSet
ID
TemplateExerciseID
Maximum Rest
Minimum Rest
...
目前,我有以下网址:
运动
/api/exercise [GET]
/api/exercise/id [GET]
模板
/api/template [GET | POST]
/api/template/id [GET | PUT | DELETE]
目前,在执行PUT /api/template/id
时,只更新模板属性,而不是它的关系。
我的问题是,设计用于更新/删除模板练习及其设置的URL的最佳方法是什么?
我在想这样的事情:
/api/template/{id}/exercise/ [GET | POST ]
- 将检索所有模板练习实例,并允许创建新的模板练习(及其集合)。
/api/template/{id}/exercise/{id} [GET | DELETE]
- 将检索模板练习实例及其设置,并允许将其删除。
/api/template/{id}/exercise/{id}/set/ [GET | POST]
- 获取所有模板练习集,并允许添加新模板。
/api/template/{id}/exercise/{id}/set/{id} [GET | DELETE | PUT]
- 获取一组练习并允许删除或更新。
这看起来合情合理吗?