多对多配方数据库SQL


Many-To-Many Recipe Database SQL

对于我正在学习php/mysql的配方数据库项目,我有一个多对多的关系。

食谱表

recipe_id

配料表

recipe_id
ingredient_id
amount

配料表

ingredient_id
ingredient_name

用户是在html表单中输入成分名称的人。它们不是我预先输入到数据库中的。

我的问题是,如何查询数据库以便:
1.)配料表中输入了配料的名称(仅当该名称不存在时)
2.)也将其插入正确配方的正确配料表中?

我一定遗漏了一些方面,这些方面会让这个概念对我来说很有吸引力。我认为,至少,我的表是正确的。

这最好通过在事务中运行多个查询来解决。

  1. 检查成分是否存在(或者在成分名称上添加唯一索引,如果重复,则在插入时捕捉错误)
  2. 插入配料
  3. 插入配料表
  4. 提交事务