【问题标题】:Database Design For Restaurant Menu [closed]餐厅菜单的数据库设计[关闭]
【发布时间】:2017-08-09 20:39:45
【问题描述】:

我正在尝试为咖啡店开发一个管理面板。 我想以系统的方式显示菜单。 咖啡示例 - 浓缩咖啡、拿铁……等等。 三明治——北极光、孟买三明治等等。 我想授予管理员添加新类别的权利,比如汉堡,以及可用的汉堡类型。 我正在努力为这个系统找到正确的解决方案。 现在我在桌子上

Menu
CategoryId int(50),
ParentId int(50),
Name varchar(100)

我可以在前端显示我想要的菜单

但我想不出一种方法让管理员在不破坏数据库设计的情况下添加新类别

【问题讨论】:

    标签: php html css mysql sql


    【解决方案1】:

    2 个表,方便地进行 fk 验证。

    Create table m_category (id int, 
                             cat_name varchar(30), 
                             constraint pk_catid primary key (id) );
    
    create table m_item (id int, 
                         cat_id int, 
                         item_name varchar(30), 
                         constraint fk_catid 
                             foreign key (cat_id)
                             references m_category(id));
    

    【讨论】:

    • 谢谢!现在清楚了:)
    【解决方案2】:

    你只需要两张桌子。

    1 - 表格类别

    CategoryId int(50),
    CategoryName varchar(100)
    

    这将有以下数据

    1 - 咖啡

    2 - 沙拉

    3 - 边

    2 - 表子类别

    SubcategoryId int(50),
    CategoryId int(50),
    SubCategoryName varchar(100)
    

    这会有这样的数据

    1 - 1 - 浓缩咖啡

    2 - 1 - 美国

    3 - 2 - 超级人类

    4 - 3 - 绿巨人

    【讨论】:

      【解决方案3】:

      你的答案是here

      您需要两张表,一个用于主题,另一个用于项目。您应该将带有 subject_id 的每个项目与其父项相关联!很简单。

      【讨论】:

      • 请注意使用正确的大小写和标点符号,并避免在此处使用 txtspk。这将使您的答案更具可读性。
      【解决方案4】:

      你只需要一张桌子, 您可以在其中存储菜单和子菜单和子子菜单的所有数据, 您需要将数据存储在 categoryId 和 parentId 的表基础中。 类别 ID, 父母身份, 名称

      所有菜单在 parentId 中都有 0,即 Coffee-Espresso 有 1 个 categoryId,Coffee-Espresso 有两个子菜单 A、B 然后 A、B 有 1 作为 ParentId。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多