AutoInc、Default與BatchUpdate

C/S架構中,數據庫設計時我們喜歡用AutoIncinteger字段作為OID,也喜歡在數据庫設置一些Default值,實踐證明這個是沒有問題的。

但是在3-Tier(使用TClientDataSet或者說BatchUpdate模式下,因爲這些資料必須在提交后DBMS產生,所以會有一些問題困擾我們

1.         Master-Detail,新增了Master記錄后,爲了保證資料完整性,需要主從同時在一個Transaction保存,所以主表還沒有保存時再新增Detail資料,Detail的外鍵填什麽?

2.         提交資料后,如果沒有看到DBMS產生的AutoIncDefault資料,是否要MergeRequery?這個動作會使客戶端畫面閃動嗎?儅前記錄跳開嗎?

我的建議是不要在數据庫定義這些東西,就像越來越多的人不會在數据庫定義表的關聯一樣。OID用遞增的OID元件自己處理(一定要數據庫鎖),每次新增就獲得一個新的號碼。至於Default,提交前按設計文檔填滿,當然也可以連同Constraint做成數據字典統一管理,統一處理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火星牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值