Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 餐厅的订单结构_Php_Javascript_Oop - Fatal编程技术网

Php 餐厅的订单结构

Php 餐厅的订单结构,php,javascript,oop,Php,Javascript,Oop,为餐厅组织订单的最佳方式是什么(可用语言为php和javascript)?由于有多个表(您保持打开的表…),所以我考虑在javascript中使用对象。但我对javascript非常陌生,对OOP也非常陌生,所以我不确定这是否是最好的解决方案,也不确定我的设计是否还可以。以下是我的想法: var order = { id: 0, table: 0, number_of_items: 0, item: { name: "", quan

为餐厅组织订单的最佳方式是什么(可用语言为php和javascript)?由于有多个表(您保持打开的表…),所以我考虑在javascript中使用对象。但我对javascript非常陌生,对OOP也非常陌生,所以我不确定这是否是最好的解决方案,也不确定我的设计是否还可以。以下是我的想法:

var order = {
    id: 0,
    table: 0,
    number_of_items: 0,
    item: {
        name: "",
        quantity: 0,
        unit_price: 0
    },
    total: 0
};

订单应该独立于表格。实际上,您将拥有一个由席位/客户对象组成的表对象和一个由一个或多个项目组成的订单对象(项目具有名称、数量、价格或属于某个项目的任何其他内容)


作为另一个复杂因素,订单可能属于一个座位(一个人)或一张桌子(例如,共享开胃菜)。支持这种关系将允许您在尝试编译表的账单时执行不同的操作(例如,如果您必须提供拆分检查)。

好的,订单应该独立于表。实际上,您将拥有一个由席位/客户对象组成的表对象和一个由一个或多个项目组成的订单对象(项目具有名称、数量、价格或属于某个项目的任何其他内容)


作为另一个复杂因素,订单可能属于一个座位(一个人)或一张桌子(例如,共享开胃菜)。支持这种关系将允许您在尝试编译表的账单时执行不同的操作(例如,如果必须提供拆分检查)。

您不需要项目的数量,因为您可以从项目数组中获得项目的数量,因此您需要一个项目数组

var order = {
    id: 0,
    table: 0,
    items: []
};
理想情况下,您可能希望为item创建另一个类,并将它们的列表放入items数组中

它看起来像:

items = [{name: "", quantity: 0, unit_price: 0}, {...}, {...}]
你可以通过循环数组来计算总数


除非数学过于复杂,否则我倾向于不在对象中存储可派生的值,但这正是我所做的。

您不需要项目的数量,因为您可以从项目数组中获得,所以您需要一个项目数组

var order = {
    id: 0,
    table: 0,
    items: []
};
理想情况下,您可能希望为item创建另一个类,并将它们的列表放入items数组中

它看起来像:

items = [{name: "", quantity: 0, unit_price: 0}, {...}, {...}]
你可以通过循环数组来计算总数

除非数学过于复杂,否则我倾向于不在对象中存储可导数值,但这正是我所做的。

这怎么样

 order = {
     id: <unique identifier>,
     table: <table number>,
     items : <array of objects as declared below> 
 }

 item = {
    item_id: <id of the item in the menu>
    instructions : <text>
 }
顺序={
id:,
表:,
项目:
}
项目={
项目编号:
说明:
}
注:

  • 项目数=项目数组的长度
  • 单价属于菜单对象
  • 总计可随时计算
  • 别忘了说明(烹饪、上菜)
      这个怎么样

       order = {
           id: <unique identifier>,
           table: <table number>,
           items : <array of objects as declared below> 
       }
      
       item = {
          item_id: <id of the item in the menu>
          instructions : <text>
       }
      
      顺序={
      id:,
      表:,
      项目:
      }
      项目={
      项目编号:
      说明:
      }
      
      注:

      • 项目数=项目数组的长度
      • 单价属于菜单对象
      • 总计可随时计算
      • 别忘了说明(烹饪、上菜)
      有多个表,在服务过程中,每个表可以有多个订单

      我认为您的系统的基本组件/对象是封面本身,由以下内容组成:


      点餐单、桌子、菜(至少有一道菜)、所选菜及其费用、点餐时间(这似乎不重要,但对一个好的酒店经理或服务经理来说通常很重要)和饮料。

      有多张桌子,在一次服务过程中,每张桌子可以点几道菜

      我认为您的系统的基本组件/对象是封面本身,由以下内容组成:


      点餐单、桌子、菜(至少有一道菜)、所选菜及其费用、点餐时间(这似乎不重要,但对一个好的酒店经理或服务经理来说通常很重要)和饮料。

      我认为你可以去掉你的结构中的一些多余元素:

      var order = {
          id: 445221,
          table: 42,
          items: [
              {
                  name: "Steak",
                  quantity: 1,
                  unit_price: 15
              },
              {
                  name: "Beer",
                  quantity: 1,
                  unit_price: 3
              }
          ]
      };
      

      我认为您可以消除结构中的一些冗余元素:

      var order = {
          id: 445221,
          table: 42,
          items: [
              {
                  name: "Steak",
                  quantity: 1,
                  unit_price: 15
              },
              {
                  name: "Beer",
                  quantity: 1,
                  unit_price: 3
              }
          ]
      };
      

      除了其他答案外,还有什么特别的准备说明?您想要单独的汉堡项目(汉堡包半生不熟,汉堡包熟透),还是想要一张单独的桌子,上面有和该项目相关的烹饪说明


      你的答案取决于你的听众。是厨房的屏幕、输入订单的女服务员、收银员、健康检查员还是以上所有人的问题?

      除了其他答案,还有特别的准备说明吗?您想要单独的汉堡项目(汉堡包半生不熟,汉堡包熟透),还是想要一张单独的桌子,上面有和该项目相关的烹饪说明


      你的答案取决于你的听众。是厨房的屏幕、输入订单的女服务员、收银员、健康检查员,还是以上所有的功能?

      这取决于你将如何编写程序。如果不使用AJAX,则不需要任何javascript结构。我不使用您使用的语法(我更喜欢在函数中构建类),但是,项应该是复数,并且必须是数组。记住这一点,尽管有一些面向对象的东西看起来不错,但如果它增加了复杂性,就应该避免。虽然我们在应用程序中使用AJAX,但我们没有对象的Javascript表示,我们只使用PHP类,Javascript处理它获得的XML数据。我们在JS中仅有的类是小部件。

      这实际上取决于您将如何编写程序。如果不使用AJAX,则不需要任何javascript结构。我不使用您使用的语法(我更喜欢在函数中构建类),但是,项应该是复数,并且必须是数组。记住这一点,尽管拥有它似乎很好