http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4609|回复: 7

[Sql Server] SQL订单该用怎么样的方式保存比较好

[复制链接]
发表于 2015-3-31 12:47:09 | 显示全部楼层 |阅读模式
订单信息包括客户信息,产品列表信息,
分两张表来存,OrderInfo、OrderParts,
这两个表用订单号来连接,一张订单往OrderInfo中插入一条记录以及往OrderParts中插入多条记录,
用存储过程来做吗?多条产品信息用什么方式传递,
猜想:
将多条产品信息通过字符串拼接后传递,如:“partname1,partname2,partname3,....”
然后在sqlserver中分割出来 通过循环插入,需要用到两个存储过程一张表一个,

问题:以上猜想靠谱吗?有没有更好的方法?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-3-31 12:50:49 | 显示全部楼层
先写入订单信息
然后再一条一条的写入OrderParts就行了吧,中间无非就 是处理一下事务
不需要批量写入
 楼主| 发表于 2015-3-31 13:09:21 | 显示全部楼层
站长苏飞 发表于 2015-3-31 12:50
先写入订单信息
然后再一条一条的写入OrderParts就行了吧,中间无非就 是处理一下事务
不需要批量写入

我就是想一次性交给事务来处理啊,比如产品库存不足,整个订单就无法添加,
发表于 2015-3-31 13:14:53 | 显示全部楼层
恩你看看.net的事务吧,就是写个循环插入,事物失败会自动恢复的,像你说的验证是否有库存这个不需要用事务吧,在写入之前查询比较一下就行了
发表于 2015-3-31 13:52:45 | 显示全部楼层
个人意见:数据库没设计好。一张客户信息表;一张商品表;一张交易信息表,3张表即可;交易信息表中可以用若一个用户一次交易购买多个商品,1条交易信息表记录(交易ID,客户ID,"商品id-商品个数;商品id-商品个数",交易时间)。
 楼主| 发表于 2015-4-6 15:31:51 | 显示全部楼层
站长苏飞 发表于 2015-3-31 13:14
恩你看看.net的事务吧,就是写个循环插入,事物失败会自动恢复的,像你说的验证是否有库存这个不需要用事务 ...

那我这样说吧,至少需要两个插入操作,一个是往订单基本信息表中插入数据,二是往交易的产品明细表中插入记录,这中间两次操作 要达到统一 就是做成两个存储过程然后放到一个事务中去,那么问题来了,参数怎么传递
 楼主| 发表于 2015-4-16 11:08:32 | 显示全部楼层
这个自己搞定了呀,sql2008支持自定义的表格类型,可以将客户信息字段和产品详细(一个表)直接传到存储过程中操作,
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-18 05:31

© 2014-2021

快速回复 返回顶部 返回列表