我为一家餐厅创建了一个表,在其中,我用数据库中的“代码”(基本上是菜名),“表”和价格保存了订单,“表”是主键。但是现在我在为相同的“表”添加新订单方面陷入了困境。可以说客户决定订购沙漠或饮料,我如何在不重新修改以前的值的情况下将“代码”和“价格”的值放入表格中?
答案 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个选择:
如果要将表用作主键,则必须为每个表创建新的DB表,并在那里存储它的每个订单。在其上方,您可以将数据库表与表一起存储
选择订单作为主键。并为每个订单分配表格。
那是我的看法