【问题标题】:Creating Sub-Tables within a Table in PHPMyAdmin在 PHPMyAdmin 中的表中创建子表
【发布时间】:2021-12-08 03:42:42
【问题描述】:

我有一个餐厅的菜单,其中的食物分为不同的组,即:

早餐(这里的食物) 沙拉(这里的食物) 冷饮(这里的饮料) 热饮(这里的饮料) 等等……

我已经为菜单创建了一个表,但我想知道是否有办法在我之前创建的 Menu 表中创建子表!

【问题讨论】:

  • sql没有sub_tables的概念——也许你的意思是相关表..
  • @P.Salmon,不太确定相关表格是否对我有帮助!但如果我错了,你能解释一下相关表格如何为我完成这项工作吗?假设客户只想检查餐厅供应的热饮,我希望客户(员工)能够快速将鼠标悬停在菜单上,仅显示热饮下的服务。当然,这可以通过将类别标题添加到表格中并通过索引跳过包含标题的行的索引来完成,但是如果餐厅编辑菜单 ONCE 一切都会被打乱。
  • 您会在子表中放入什么,或者您会使用哪些子类别?例如,您打算如何从餐桌上只选择热饮?
  • @IsaacBennech,子表/子类别将是早餐、热饮、冷饮等。
  • 我有点困惑,主要类别是什么?

标签: mysql database phpmyadmin database-table


【解决方案1】:

当然,这可以通过将类别标题添加到表中并通过索引跳过包含标题的行的索引来完成,但如果餐厅编辑菜单 ONCE 一切都会被打乱。

听起来您正在考虑一个 SQL 表,就像它是一个具有不同类型行(如标题行和数据行)的 Word 表。事实并非如此。 SQL 表的行应该都是一样的。

如果你的菜单表是这样的

id name price
1 Omelette 8
2 Sandwich 6
3 Soup of the Day 8

对这些进行分类的最简单方法是为类别添加一个新列:

id name price category
1 Omelette 8 Breakfast
2 Sandwich 6 Breakfast
3 Soup of the Day 8 Lunch

(虽然在真实的数据库设计中,类别可能是类别表的外键)

然后您可以使用WHERE category = ... 子句仅显示一些条目,或者使用SELECT DISTINCT category FROM menu ORDER BY category 以按字母顺序获取所有类别。

【讨论】:

  • 在这种情况下我肯定会将类别设为外键,否则数据不一致的可能性很高。更不用说它遵循数据库设计的最佳实践,但我的主要动机是保持数据一致。
  • 是的,但对于初学者来说,只需一个类别名称列就足以满足 OP 的要求,即能够查看类别并从中进行选择。
猜你喜欢
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多