【问题标题】:MySQL design and relationsMySQL的设计和关系
【发布时间】:2023-03-05 05:44:01
【问题描述】:

我正在为餐厅创建一个项目,用户可以在其中浏览和选择食物。我以前没有这样的想法,并且在数据库表的设计和关系方面遇到了一些麻烦。是这样的

1. Restaurants
2. Customer click on restaurant-1 
3. Customer get menu list for foods and drinks 
4. Customer browse the food via sub-categories ( Salads, Drinks, Desserts and so on )
5. Customer choose some food and drinks...

正如我在这里看到的,我需要 4 个主表 restaurantsmealsmeal_typesmenu。表Restaurants 将举行餐厅

id
name
menu
image
text
address

Table Meal_types 将举行主餐类别 - 饮料、沙拉、甜点等

id
name

桌子meals 将容纳所有食物/饮料

id
name
image
text
weigh
price

Table menu 必须保留在选择时向哪个餐厅展示哪些食物/饮料。

id
name

所以这对我来说是棘手/困难的部分。如何建立它们之间的关系。我看到并且必须拥有的关系之一是mealsmeal_types。但其他人呢?如何将restaurants 与他们联系起来,以及当用户单击某个餐厅以查看仅来自该餐厅的食物时。我首先想到的是这张桌子menu,但不知道到底是怎么回事。

【问题讨论】:

    标签: mysql foreign-key-relationship


    【解决方案1】:

    我发现根据ids 所代表的项目来命名它们更容易。所以我建议将表中的列命名为id restaurant Restaurant_id。这可能有助于您在关系中保持总体观点。

    从你最小的部分开始:你的桌子meals。您必须将此表与 Meal_types 表结合起来,因为两者之间存在 1:1 的关系(每餐只有一种类型,因此只需将另一列 meal_type 添加到 meals)。

    第二个你有你的restaurants

    现在您只需要有关餐厅提供的餐点的信息。此 Translation 表是您的表 menue 并包含如下列:

    Restaurant_id,
    Meal_id
    

    要获取您要查询的某个餐厅的菜单

    SELECT
        meals.meal_type, meals.name, meals.price
    FROM 
        restaurant, menue, meals
    WHERE
        Restaurant.restaurant_id = menue.restaurant_id
        AND menue.meal_id = meals.meal_id
        AND Restaurant.name = 'Mc Donald's'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 2018-10-03
      • 1970-01-01
      • 2014-09-12
      相关资源
      最近更新 更多