Php 餐厅的订单结构
为餐厅组织订单的最佳方式是什么(可用语言为php和javascript)?由于有多个表(您保持打开的表…),所以我考虑在javascript中使用对象。但我对javascript非常陌生,对OOP也非常陌生,所以我不确定这是否是最好的解决方案,也不确定我的设计是否还可以。以下是我的想法: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
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结构。我不使用您使用的语法(我更喜欢在函数中构建类),但是,项应该是复数,并且必须是数组。记住这一点,尽管拥有它似乎很好