【问题标题】:Designing a database for hotel menu为酒店菜单设计数据库
【发布时间】:2013-08-13 11:39:30
【问题描述】:

我有一个名为 hotels 的表,这是架构

tables(type, id, name, description, menu, address)

我可以轻松存储类型、ID、名称、描述和地址。它们都是字符串和整数。

考虑一下大约有 100 家酒店,每家酒店都有不同的价值。

但是菜单呢?我怎样才能存储它?菜单将是这样的:

Pasta : 10 euros
HamBurger : 5 euros
#similarly many items in the menu

谁能告诉我如何存储它?请尝试详细解释。我一点也不明白。我尝试将菜单存储在不同的表中,酒店 id 作为外键,但这让我只为菜单写了 100 个表。

【问题讨论】:

  • 现在您只是要求我们用定制教程重写教科书,而您没有表现出任何研究或其他努力。请参阅How to Ask,点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。按照教科书的理由展示您的工作步骤,并在您遇到困难的第一个地方提出 1 个经过研究的特定非重复问题。 (记录和使用设计的语言和工具手册不是这样的教科书。)(维基文章或网络帖子也不是。)

标签: mysql database-design relational


【解决方案1】:

我会说你为所有可能的菜单创建了一个表(“pasta”、“burger”、..)第二个表将它们链接到酒店

例如: 菜单(menu_id、名称、价格) hotels_menus (hotel_id, menu_id)

要查找给定酒店的所有菜肴,您可以通过“SELECT m.name, m.price FROM hotel_menus AS hm INNER JOIN menus AS m ON hm.hotel_id = [hotel_id] AND hm.menu_id = m.menu_id”来检索它们

如果每家酒店的价格不同,请将价格字段移动到 hotels_menus 表。

【讨论】:

    【解决方案2】:

    实际上,您还需要一个类别字段,例如开胃菜、主菜等。 你甚至可能需要更多

    【讨论】:

      【解决方案3】:

      我建议您在菜单表中创建类别、子类别和食物名称、价格字段。这可能会有所帮助。例如,如果是面食,您的类别将是食物,子类别将是蔬菜非蔬菜,而 foodname 将是面食。如果有饮料,您也可以关注此模块。根据需要,你也可以让你的 foodname 字段为空。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-06
        • 1970-01-01
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多