CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

讨论较好的商品订单、购物车(收藏架)解决方法!

楼主doveph(Dove)2005-05-27 10:26:30 在 Web 开发 / ASP 提问

看过好几个商城的购物车(收藏架)的实现方法,但感觉执行效率都不是很理想  
  希望能讨论一下,商品订单与购物车(收藏架)的实现方法:  
  1.购物车(收藏架),商品是如何存放数据库更好?是以单独的临时表存放购物车中每一商品对应一条记录,还是每一顾客对应一条记录然后用“,”分隔商品id?如(1502,   1503,   1504)  
   
  2.根据购物车下的订单如何存放管理?是否与购物车中的记录在同一表中,是每一商品对应一条记录,还是每一订单对应一条记录然后用“,”分隔商品id?  
   
  或许还有其它更好的办法?一般大的商城是采用何种方案? 问题点数:100、回复次数:18Top

1 楼doveph(Dove)回复于 2005-05-27 11:05:11 得分 0

不是吧!没一个人来顶?Top

2 楼lyexcel(冰上飞人)回复于 2005-05-27 11:19:14 得分 10

 
          根据第一范式的要求,最好不使用逗号分割法.  
  1.购物车(收藏架),   采用一种商品+一个人对应一条记录的方法,   例如  
          商品ID,   购物者ID,   数量,等等  
          1               someOne1       1  
          2               someOne1       3  
          1               someOne2       5  
          3               someOne2       6  
   
  2.下订单应该每人每次一个订单(称之为订单表),   一个订单对应于多条商品明细(称之为购物明细表)  
      也就是说,   订单表与购物明细表是一对多的关系  
   
  个人见解,请大家批评指正  
  Top

3 楼a040liutao(冬之心)回复于 2005-05-27 11:23:40 得分 15

同意楼上!  
  以前做类似程序都是没有用过逗号分割  
  感觉逗号分割的方法会使修改购物车等操作变的比较麻烦Top

4 楼aspme(.net初成型)回复于 2005-05-27 11:26:27 得分 11

我还是比较喜欢用表来实现的,两个表,通过货物ID来实现关联查询,临时表用于想购买的商品的存放,另一个表才是真正存放确定提交时候的清单Top

5 楼doveph(Dove)回复于 2005-05-27 11:47:48 得分 0

lyexcel(冰上飞人)说的很有道理,还请各位说说各方法的利与弊,一单多记录会不会对造成对数据库操作过频繁?  
  另外,像   aspme(技术转型中)说的,是否订单表与购物车的表(购物车表作为临时表)应该分开?Top

6 楼lyexcel(冰上飞人)回复于 2005-05-27 11:54:57 得分 8

订单表确实与购物车表分开,但结构上几乎可以一致.  
  另外购物车表的购物明细表   与   订单表的购物明细表   也应该分开,   者两个表的结构也几乎一致Top

7 楼bingofei(bingo)回复于 2005-05-27 11:58:49 得分 8

购物车为什么要放在数据库中?购物车本身是临时选择的数据,购物完毕这些数据就没用了亚。  
  用session或者cookies都能解决啊!  
  个人认为把购物车做成一个对象存放在Session或者cookie中更好。Top

8 楼doveph(Dove)回复于 2005-05-27 12:56:08 得分 0

用session与cookie如果用户关闭浏览器或是出现某种情况,收藏架中的数据就会丢失,而保存在数据表中就不会了,在下次用户登录后还能看到收藏架中的商品Top

9 楼lyexcel(冰上飞人)回复于 2005-05-27 13:01:42 得分 8

同意楼上的Top

10 楼doveph(Dove)回复于 2005-05-27 13:02:03 得分 0

以lyexcel(冰上飞人)   的意思是,收藏架与订单表都要分成两个表?比如:订单表中只包含用户ID及订单号,而订单明细表又是独立的表(里面包含订单的详细资料是吗)?  
  如果这样的话,就订单与收藏架来说就有四个表了,这样会不会对数据库压力很大?Top

11 楼lyexcel(冰上飞人)回复于 2005-05-27 13:06:45 得分 0

因为购物车只是临时使用的,   要定时清空;   而订单是要持久保存的.   两者的作用时间不一样,实现的内涵也不一样,   从现实的意义上来说,   还是分开的比较好.  
  至于压力一说,个人认为分开有利于缓解压力.   并不是表越多,压力越大.Top

12 楼sfwxw0456(全职杀手)回复于 2005-05-27 13:09:11 得分 8

同意楼上的说法!  
      但是在购物的时候放在数据库里,这样对数据库的操作是不是太频繁了!?会不会影响速度!?Top

13 楼runtu(闰土/无锡)回复于 2005-05-27 13:13:17 得分 8

Mark!   关注Top

14 楼doveph(Dove)回复于 2005-05-27 13:22:48 得分 0

是呀,我就是考虑到对据库的操作,查询太频繁,是否会影响速度和其它各方面Top

15 楼doveph(Dove)回复于 2005-05-27 13:29:52 得分 0

不知道像类似当当这类系统是如何解决这问题的Top

16 楼bingofei(bingo)回复于 2005-05-27 13:39:06 得分 8

收藏夹的数据的确需要放在数据库中,  
  但是购物车并不需要呀,所以我上面才说购物车的数据保存在session或者cookie中。这样根本不涉及数据库操作,效率明显能提高很多。  
   
  Top

17 楼blueonly(认真编程,低调生活。)回复于 2005-05-27 14:46:11 得分 8

购物车,商品,订单当然都要分开  
   
  用数据库存购物车,挺好,不受cookies大小的限制Top

18 楼blueonly(认真编程,低调生活。)回复于 2005-05-27 14:50:56 得分 8

一个购物车程序基本应该有  
  产品表  
  订货人表  
  收货人表  
  购物车表  
  订单表  
  推荐你看一看,   Professional   asp   xml   里面有一个介绍购物车程序的例子  
  Top

相关问题

  • 购物网站求教生成订单程序
  • 讨论:内部订单更改的流程和控制。
  • 关于鞋厂的订单档数据结构,欢迎大家讨论
  • 用jsp作一个网上购物系统,订单查询这一块我有点迷茫。指点者有分。
  • 请教两个购物车相关的技术问题:cookie和保存订单的问题
  • 关于用session做的购物车,生成订单存数据库的问题,在线等~
  • 订单
  • 关于购物商城的商品数量冻结问题的讨论
  • 在csdn购物后,选择招行一网通支付后,可以立即看到订单状态为用户已划款,怎么实现?
  • 网上购物系统中收藏夹中,如何做到把超期商品自动删除?

关键词

  • 数据库
  • 数据
  • 解决
  • 压力
  • 用户
  • cookies
  • 订单
  • 表
  • 购物车
  • 收藏架

得分解答快速导航

  • 帖主:doveph
  • lyexcel
  • a040liutao
  • aspme
  • lyexcel
  • bingofei
  • lyexcel
  • sfwxw0456
  • runtu
  • bingofei
  • blueonly
  • blueonly

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo