在同一行插入更多值

时间:2019-02-25 19:20:34

标签: php mysql database

我为一家餐厅创建了一个表,在其中,我用数据库中的“代码”(基本上是菜名),“表”和价格保存了订单,“表”是主键。但是现在我在为相同的“表”添加新订单方面陷入了困境。可以说客户决定订购沙漠或饮料,我如何在不重新修改以前的值的情况下将“代码”和“价格”的值放入表格中?

2 个答案:

答案 0 :(得分:0)

一些适合您的想法:

您正在使用术语table来指代正在订购商品的人员表。因为这可能会使我的回答感到困惑,所以让我们使用术语customer来指代所有下订单的客户的表。

首先,您必须决定如何构建数据库和表。

一个想法是要有两个SQL表:(a)一个菜式表(entres,甜点,饮料等)及其价格,(b)一个交易表。 (订购的每道菜都是一次交易,因此每个客户都会有多次交易)

每笔交易(一行)将包括:

a。 transactionIndex-顺序-autoIncremented-唯一(主键)

b。 transactionID-发票编号-可能是YYYYMMDD_HHMMSS

c。 table_num-整数(标识下订单的客户)

d。菜-订购的菜

打印发票时,您在Tn表中搜索与transactionID#123相关的所有项目。使得添加新订单非常容易。

如果需要,您还可以具有 sessions 的SQL表,该表可以引用单个就餐会话中涉及的所有交易。本质上,这将是每个已完成发票的记录。您可能会有类似的字段:

a。 SessionIdx-唯一索引,自动递增,主键

b。 SessionID(发票编号)将是交易表中的transaction_num

c。日期/时间

d。客户数量

e。付款方式

还要注意,您将要使其成为一个关系数据库,这仅意味着在 transactions表的各自字段中写入菜的名称和菜的价格,而不是>-您只需放入dish_id(来自SQL的菜盘)。然后,将对碗碟表进行轮询以获取碗碟名称和碗碟价格。使更新内容变得容易。 但是,您也可能希望存储历史价格,以便在更新价格时不会丢失历史价格数据。

答案 1 :(得分:0)

我认为您选择了错误的主键。因为表不能是数据库中的主键。因为您必须多次使用订单表。

您有2个选择:

  1. 如果要将表用作主键,则必须为每个表创建新的DB表,并在那里存储它的每个订单。在其上方,您可以将数据库表与表一起存储

  2. 选择订单作为主键。并为每个订单分配表格。

那是我的看法