php - 多对多配方数据库 SQL

标签 php mysql sql mysqli many-to-many

我正在致力于学习 php/mysql 的食谱数据库项目有一个多对多关系。

食谱表

recipe_id

成分列表

recipe_id
ingredient_id
金额

成分表

ingredient_id
成分名称

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

我的问题是,如何查询数据库以便:
1.) 将成分名称输入到成分表中(仅当它尚不存在时)
2.) 还将其插入到正确配方的正确成分列表中?

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

最佳答案

最好通过在事务内运行多个查询来解决此问题。

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

关于php - 多对多配方数据库 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25872818/

相关文章:

mysql - 使用 SQL 基于当前行值对数据子集进行聚合函数

mysql - SQL错误1215无法添加外键约束?

MySQL 端口 3306 与 3307 差异

c# - 在 Linq .DBML 文件中重构表名和列名的简单方法?

Php mysqli 适用于 sql 但不适用于存储过程

php - Laravel 覆盖 EloquentUserProvider 以更改 validateCredentials() 中的密码字段名称

mysql - 检索 User_ID 在 12 月而非 1 月进行交易的记录

php - 使用/不使用 php 在 MYSQL 中按日期求和和分隔的最佳方法

php - 如何在 Web 应用程序中存储选项列表

php - Zend_Http_Client_Adapter_Exception' 消息'无法连接到 ssl ://api. twitter.com:443