re: 小议数据库主键选取策略(原创)

“为了能在OrderDetail的OrderID字段中添入正确的值,必须先更新Order表以获取到系统为其分配的OrderID值,然后再用这个OrderID填充OrderDetail表。最后更新OderDetail表。但是,为了确保数据的一致性,Order与OrderDetail在更新时必须在事务保护下同时进行,即确保量表同时更行成功。显然它们是相互矛盾的。”
我觉得此处的矛盾是的可以解决的,正在处理的一个erp项目中,好几个表的插入是如此处理的,具体处理是:
1、程序中建一个大事物,包含主表和从表的插入。
2、主从表插入都有存储过程完成,主表存储过程成功后,返回正确的id值,进行从表的插入;如果不成功主表就给出一个-1,表示不成功,则程序控制不插从表.
3、只有主从表插入都成功,大事物才进行提交。

当然要注意一些细节:
1、要考虑用户的扩展性:
原因是:客户本来只有一个部分有订单操作,如果现在要有两个部门,订单编号又要联号,你将不能操作。

 sql server中要把一个表从数据库拷贝到另一个数据库,通过生成脚本,再通过查询分析器运行脚本是一个简单的方法,但是默认值和主键及说明都要丢失,只是因为生成的脚本不包括这些内容。
通过.net 自带的服务器资源管理器中的“生成创建脚本“就能生成相关内容的脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值