关于[一个基于WF的业务流程平台]表设计的说明
?
?
數(shù)據(jù)庫的主鍵設(shè)計說明
在我發(fā)布的例子 一個基于WF的業(yè)務(wù)流程平臺 中,
?
N12345B 問到
//
所有的數(shù)據(jù)結(jié)構(gòu)都幾乎使用了Guid這一數(shù)據(jù)類型作為ID,而這個ID的作用僅僅作為流水號嗎?所有表之間的關(guān)系都并未用到這一ID標(biāo)識,而使用的是 xxxNo之類的
//
?
在這里,我對這個Guid的使用原因說明一下
為什么為每個表都加一個Guid列
這是因為我要處理并發(fā),說明如下:
使用了Guid列,是為了讓每條記錄在全開庫有一個唯一標(biāo)識,
?
我通常會在內(nèi)存中根據(jù)需要維護這樣一張表
?
Guid | UserID | State |
76C43F0D-F39E-458b-9E40-D4D70703FF2E | 001 | ? |
76C43F0D-F39E-458b-9E40-D4D70703FF2E | 002 | ? |
76C43F0D-F39E-458b-9E40-D4D70703FF2E | 003 | ? |
?
當(dāng)用戶[001]查詢某條記錄時,如果他選中[他人修改后立即通知我],選項時.
服務(wù)器端會將該用戶查詢的記錄的Guid與UserID添加到上面的表中.
?
當(dāng)某條記錄被修改后,系統(tǒng)會到上面的表中查找該記錄的Guid是否被注冊,如果被注冊,則向?qū)?yīng)的UserID發(fā)一通知.
?
當(dāng)然,這只是這個Guid的一個應(yīng)用,我在做并發(fā)修改仲裁時,也用這個Guid,關(guān)于這方面,我以后專門寫一篇文章介紹
?
為什么Guid列要做主鍵
先鄙視一下自已的懶惰(^_^)
?
在使用Linq To Sql時,表要的主鍵,主鍵不能修改,所以我就用Guid做主鍵了,而業(yè)務(wù)主鍵就讓我做成了唯一鍵
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/foundation/archive/2009/02/11/1388722.html
總結(jié)
以上是生活随笔為你收集整理的关于[一个基于WF的业务流程平台]表设计的说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孩子带引父母
- 下一篇: oracle表被锁了怎么处理