bluefog510 2011-08-11 03:33
浏览 455
已采纳

购物车表主键的一些问题

最近自己做了一个购物车
其中购物车表如下:
CREATE TABLE cart (
id INT NOT NULL AUTO_INCREMENT,
cart_id CHAR(32) NOT NULL,
goods_id INT NOT NULL,
quantity INT NOT NULL,
added_on DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;

由于考虑到确保主键id在无论何种情况下保持唯一值,所以写插入语句的时候,为id指定的值是UUID()
但是结果在测试的时候,动不动就报主键冲突的错误:
//Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY'
没有任何规律可循

于是暂时不用UUID(),让id自增(不知道理论上有没有可能出现主键冲突,比如正巧都在这一瞬间同时加入购物车...理论上,有可能吗?)这是第一个问题.

第二个问题:
加入购物车进行付款的时候,实际上是删除购物车里面的订单,并把订单加入到order表,cart表每天要做数不清的add update delete操作,那cart表的id不是越变越大,这个会有什么隐患吗?

请大家帮忙解答一下,或者有成熟的做法,请指教谢谢!

  • 写回答

4条回答 默认 最新

  • iteye_566 2011-08-11 18:32
    关注

    问题一:主键自增是通过数据库进行实现的,不会出现问题(个人也不怎么建议使用uuid)
    问题二:主键自增达到一定程度,肯定会出现问题,不过,这个要想出现问题,得很久很久,我还没遇到这个问题。这个问题,应该是dba要考虑的,牵涉到数据库的某些优化机制。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝