多表上的SQL约束

时间:2019-04-05 17:12:05

标签: mysql sql database

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

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

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

我只希望每个用户都可以在一个类别中标记每餐。

目前,我有一个令人难以置信的简单db:

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''Disgusting'中。我认为同时限制用户名和用户名可能是正确的方法,但我的深度不够。

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

1 个答案:

答案 0 :(得分:1)

使用类似以下的数据库设计可能会更好:

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)*