-
请各位牛人指教,一个困扰我很久的订单表设计问题。25
旅游电商订单表设计问题
问题描述:网站提供酒店,机票,旅游线路等等...多种产品的预定。用户可以同时预定多个产品,怎么把这么多不同类型的产品糅合到一个订单记录中也就是一个订单号。
因为这些产品的每个订单属性都不一样。一个订单记录怎么去做这么多种订单的订单详情关联,,
例如:订单号是DK3453545,那这个订单号里用户是预定了机票,门票,酒店,以及旅游车的 那这个订单记录中该怎么把这些订单详情关联到这个订单记录中,而且这些用户需要预定的产品是不固定的。
我也想过把每个产品类型的订单记作为一个单独产品类型订单记录,那么就会存在很多个订单表,当系统需要查询当前用户的订单时,就需要把所有的类型订单表都遍历一遍。这样效率太慢。而且感觉很不好维护,
麻烦各位做过订单电商的牛人给点经验。;
2012年6月29日 10:20
7个答案 按时间排序 按投票排序
-
采纳的答案
1、商品基础属性及库存(SKU)
2、订单以及订单详情(Order & OrderItems),OrderItems 里面的record 肯定与某个SKU 关联上。同时你们的这种订单,一定包含个性化定制信息,一般都可以用一个字段将个性化信息保存起来(比如订酒店,可能包含日期、住几晚、单间还是标间、其他特殊要求等)
3、Shipment,订单只是与客户签订的一个意向合同,那么shipment 就是你们如何去履约这个合同的载体。这种情况下,一类商品就可以设计成一种shipment,具体的履约方式、过程和状态,都可以放到这个模型里。
总结:订单是面向用户的模型,代表着一个销售或者销售意向合同。shipment 是面向内部实际操作环节的模型,代表系统如何去跟踪和记录订单的每个不同类型的商品是如何履约的。2012年6月29日 13:44
-
如果想和到一个订单表,那么就加个订单的类型吧,比如机票类型是JP,酒店类型是JD,然后关联起来对应产品的id即可。
更好的设计方法是对所有的产品做一个抽象,然后你的机票,酒店等都是这个对象的一个实现(这个时候也需要做类型的,只是类型放在了抽象对象中而已)
两种发发都可以,你自己参考2012年6月29日 16:02
-
1.订单表
ID 订单号 总价格
1 DK3453545 400
2.订单明细表
ID 订单号 序列号 商品ID 数量 单价
1001 DK3453545 1 991 1 100
1002 DK3453545 2 992 2 100
1003 DK3453545 3 993 1 100
3.商品表
ID 名称 种类 当前价格 描述
991 迪拜酒店 1 100 迪拜七星级帆船酒店
992 上海到迪拜机票 2 100 1月1日上海到迪拜机票
993 迪拜一日游 3 100 1月2日迪拜一日游
4.酒店表
ID 名称 星级
41 迪拜酒店 7星
5.机票表
ID 名称 出发地 目的地 类型
51 上海到迪拜机票 上海 迪拜 经济舱
6.旅游表
ID 名称 出发地 目的地 天数 是否有导游
61 迪拜一日游 上海 迪拜 1 1
当系统需要查询当前用户的订单时,只先查到1,2,3表。只能看订单概貌,可以将一些酒店,机票等共有的属性放到商品表里。
然后要看明细,只能点击一行,进到另一个页面才能看特定于某个种类产品的属性,这时再去查4或5或6表。这样4,5,6页面也可以独立了,2012年6月29日 14:25
-
把产品这个对象单独抽象出来做个接口,订单和产品的关系是一对多的关系
Order--订单
Product--产品
Public Class Order{ private List<Product> products; //get,set方法等等 //其他一些和订单相关的方法 }
然后具体的产品,比如机票,门票,酒店等都是Product类的具体实现.
自己抽象一下这个接口,把产品中共性的东西提炼出来作为接口的方法,比如所以产品都有产品单价getPrice()方法,然后做个抽象的产品类实现Prodect接口,把共性的实现代码放在抽象类中,所有的具体类,比如机票,门票,酒店等,都继承这个抽象类,然后实现各自的具体业务逻辑.2012年6月29日 13:59
-
亲,如果非要整成一张表的话,只有在字段冗余上面下工夫了。首先有个订单类型(机票,门票,酒店)字段,如果用户定了机票,录入机票相关字段即可,依次类推。查询数据的时候也只需要根据订单类型定位相关字段即可。(当然Entity对象还是按订单类型分别描述各个订单的属性,只是数据库表中冗余所有类型的字段)
2012年6月29日 10:42
-
没做过订单电商,我想到以下:
1.订单表
ID 订单号
1 DK3453545
2.订单详细表
ID 订单号 序列号 商品ID
1 DK3453545 1 991
2 DK3453545 2 992
3 DK3453545 3 993
3.商品表
ID 名称 种类
991 迪拜酒店 1
992 xx机票 2
993 杭州一日游 32012年6月29日 10:31
相关推荐
本文将详细介绍一种简单实用的方法来解决这一问题,帮助用户顺利删除这些乱码文件。 #### 二、乱码文件产生的原因 在深入探讨乱码文件的删除方法之前,我们先来了解一下乱码文件产生的原因,这有助于我们更好地...
对百鸡问题的详细程序描述!如果你有觉得有问题的地方请指教!希望能帮助你,你也知道这门课很难学吧!
正话反说(Python 一级 请各位大佬多多指教,提出不足,加以指导).py3
在本文中,我们将深入探讨如何使用C#语言开发一个秒表计时器。C#是一种广泛应用于Windows桌面应用、游戏开发、Web服务等领域的面向对象的编程语言。它以其强大的功能和简洁的语法深受程序员喜爱。 秒表计时器是一个...
结合SQL Server 2005作为后端数据库,可以构建一个功能丰富的电子宠物世界。下面将详细讨论C#、SQL Server 2005在电子宠物游戏中的应用以及可能遇到的问题。 首先,C#在游戏开发中的主要职责是实现游戏逻辑和用户...
判断生肖(Python 一级,用于判断该年的生肖,各位大佬请多指教).py3
一拖四
新人类请多指教名片制作系统是制作名片用的。1.授权: 本授权合同授于 贵用户下列权利: A.应用程序软件: 贵用户得于单一计算机上安装并使用乙份「软件产品」之 拷贝或同一操作系统之任何先前版本。已安装...
我做了幅1:500地形图请各位高人多多指教
现在这个奇怪的现象是这样的,我用delphi7加SPCOMM2.5开发串口通讯程序,有点象网上一些通讯小精灵之类的,主要是跟智能仪表这些设备进行采集,奇怪的是,很多时候都会出现这样的情况,第一次,运行我自己的程序,...
在这个“动物园的管理系统”项目中,开发者使用C++编程语言构建了一个模拟管理动物园日常运营的软件。这个系统可能包括了动物信息的录入、查询、修改、删除等基本功能,以及动物分类、展示、喂食时间安排等更复杂的...
对皇后问题的详细程序描述!如果你有觉得有问题的地方请指教!希望能帮助你,你也知道这门课很难学吧!
【吹泡泡游戏,请多多指教哦】 ...综上所述,“吹泡泡游戏,请多多指教哦”不仅是一个简单的娱乐应用,还涵盖了游戏开发的多个技术层面。无论是开发者还是玩家,都可以从中学习到不少关于游戏制作的知识和经验。
10. **代码优化**:虽然这是一个字符模式的游戏,但优化仍很重要。例如,避免不必要的屏幕刷新,使用适当的数据结构和算法以提高效率。 最后,提供源代码意味着你可以深入研究每一段实现细节,了解每个功能是如何...
本人刚入门不久,最近一个月断断续续才写出这个简单的游戏,VGA显示,键盘控制,两人对打的,还有些BUG,比如对对打时键盘方向键的一次按下与松开还有待优化。其实最初没打算会搞这个的,在调出了PS2键盘,鼠标,VGA...
编的一个身高体重比例计算器请指教-h_w_clc.m h_w_clc.m h_w_clc.fig 简单的GUI界面,测你的标准体重和BMI值,欢迎各位指导优化~ 捕21获.PNG
编的一个身高体重比例计算器请指教-h_w_clc.fig h_w_clc.m h_w_clc.fig 简单的GUI界面,测你的标准体重和BMI值,欢迎各位指导优化~ 捕21获.PNG
一个财务软件的数据库设计报告,希望对大家有用,希望各位多多指教
【标题】:“C#超市管理系统”是一个基于C#编程语言开发的软件应用,旨在实现对超市日常运营的全面管理。这个系统由一个自学C#的小白开发者独立完成,因此他非常期待得到大家的专业建议和指导。 【描述】:开发者...