在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/數(shù)據(jù)庫/ 數(shù)據(jù)庫建表疑問,是否要用復(fù)合主鍵?

數(shù)據(jù)庫建表疑問,是否要用復(fù)合主鍵?

我需要建一張表:

OrderId*  UserId  OrderDate  Total
1          1      2017-1-1  100
2          1      2017-1-1  120
3          9      2017-1-1  20
4          12     2017-1-1  88

一般情況下我們就用OrderId作為主鍵,查詢的時候也是where UserId='x'作為條件查詢的。

但是我想知道是否有必要建立這樣的結(jié)構(gòu):

UserId* OrderId*  OrderDate  Total
1          1      2017-1-1  100
1          2      2017-1-1  120
9          3      2017-1-1  20
12         4      2017-1-1  88

同時把UserId和OrderId作為復(fù)合主鍵,當(dāng)用戶1在更新的數(shù)據(jù)的時候,用戶9來查詢時能夠立即返回結(jié)果,而不用等1鎖表結(jié)束?

是否這樣設(shè)計在多用戶需求的場景下可以劃分?jǐn)?shù)據(jù)的操作細(xì)粒度?

求大神來幫忙,小的感謝!

回答
編輯回答
貓小柒

不建議在數(shù)據(jù)庫層面加鎖,建議通過服務(wù)端的內(nèi)存鎖(鎖主鍵)。當(dāng)某個用戶要修改某個id的數(shù)據(jù)時,把要修改的id存入memcache,若其他用戶觸發(fā)修改此id的數(shù)據(jù)時,讀到memcache有這個id的值時,就阻止那個用戶修改。原文詳情

2017年8月26日 11:44
編輯回答
涼薄

毫無必要,根據(jù)主鍵更新數(shù)據(jù)只會鎖定一行數(shù)據(jù),而不是鎖定整個表。

2018年3月20日 06:42
編輯回答
情已空

沉下去了呢,沒有人搞這個嗎?這里難道都是JS專區(qū)?

2017年8月2日 05:08