mysql - 多个表上的 SQL 约束

标签 mysql sql database

我在设计此表及其约束时遇到困难。

我有一个用户列表,每个用户都可以有一个首选餐食列表。为了确定接下来要做什么饭菜,我分配了列表值。

Yummy <- value 5.
OK <- value 3.
Disgusting <- value 1.

我只希望每个用户能够在一个类别中标记每顿饭。

目前我有一个令人难以置信的简单数据库,它是:

User(id, name)
Meal(id, name)
Yummy(id, userid, mealid) where userid id and mealid are foreign keys.
OK(id, userid, mealid) where userid id and mealid are foreign keys.

我想做的是,如果我将千层面插入到 Yummy 中,那么我就不能将该值插入到 'OK'“恶心”。我认为对 mealid 和 userid 进行限制可能是正确的方法,但我有点力不从心。

任何帮助或建议将不胜感激。

最佳答案

您可能会更好地使用与此类似的数据库设计:

user (id, name)
meal (id, name)
rating (id, name, value)
user_meal_rating (user_id, meal_id, rating_id) *primary key on (user_id, meal_id)*

关于mysql - 多个表上的 SQL 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55540423/

相关文章:

java - 如何使用 Java API 获得 AKKA for MySQL 的持久性?

mysql - 如何按质量得分和发布日期对文章进行排序?

sql - 复杂 SQL 查询优化

database - 随着数据量的增加确保数据库性能

mysql - 如何在 MS Visual Studio 2008 上从 VC++ 连接 MySQL?

mysql - 撤消来自远程 IP 的访问权限

php - 带有 "purchase credits/tokens"的支付网关集成到 php+mysql 网站中?

php - 使用 PHP 从 XML 文件更新 MySQL

sql - 通过 SQLLDR 将多个 csv 加载到一张表中

android - 在 Android 上重新创建 Activity 时使用 DatabaseHelper