2012-12-17 49 views
0

我有一個表格,用於存儲格式爲的簡單參數參數名稱/參數值。但它的主鍵是複合鍵。如何使用組合鍵組織表CRUD用於表格

什麼是最好的方式來組織添加/更新/刪除參數鎖定。因此,舉例來說,如果有人開始投入桌子旁參數

first_comp_id second_comp_id paramName paramValue 

12    5    param_1  sdgfsdf 
12    5    param_2  sdgfsdf 
12    5    param_3  sdgfsdf 
12    5    param_4  sdgfsdf 

任何人都不能添加/編輯或刪除任何記錄{first_comp_id:12,second_comp_id:5}?

我下面的表結構(我稍微改了個名字,但理念是相同的):

CREATE TABLE [dbo].[SomeTable](
[first_comp_id] [int] NOT NULL, 
[second_comp_id] [int] NOT NULL, 
[paramName] [varchar](50) NOT NULL, 
[paramValue] [varchar](200) NOT NULL, 
    PRIMARY KEY 
    (
    [first_comp_id] ASC, 
    [second_comp_id] ASC, 
     [paramName] ASC 
    ) 
) 

回答

0

,如果我得到這個正確你USER1進入這些記錄 和USER1可以進行編輯和添加具有{first_comp_id新記錄:12,second_comp_id:5}

你需要添加含有一種獨特的參考用戶

然後一個山坳,你會在你的代碼訪問數據庫中添加勾選,用戶必須是正確

update sometable (paramValue) where first = ee and second = bb and name = rr and user = current user 

插入將成爲

IF not EXISTS (SELECT * FROM sometable WHERE first = ee and second = bb and name = rr and user <> current user) 
BEGIN 
    insert into sometable (first,second, name, val, user) 
    values (ee,bb,rr,vv,uu) 
END 

,或者如果你想讓它完全分貝的水平,你可以檢查更新之前,使用觸發器 如果正確的用戶

之前插入檢查,如果第一和第二AREN」 t被另一個用戶使用