第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 Visual Studio 在 SQL Server 中填充主鍵值的最佳實(shí)踐

使用 Visual Studio 在 SQL Server 中填充主鍵值的最佳實(shí)踐

C#
陪伴而非守候 2023-09-09 17:03:03
我正在做一個(gè)大學(xué)項(xiàng)目,偶然發(fā)現(xiàn)了一個(gè)問(wèn)題,我不知道如何以最好的方式處理它。我有一個(gè)手動(dòng)創(chuàng)建的 SQL Server 數(shù)據(jù)庫(kù),以及 Visual Studio 中用 C# 編寫(xiě)的 Winforms 項(xiàng)目。應(yīng)用程序應(yīng)該對(duì)數(shù)據(jù)庫(kù)執(zhí)行 CRUD 操作。我的問(wèn)題是操作表中主鍵列的最佳方法是什么?我應(yīng)該在數(shù)據(jù)庫(kù)中將它們定義為自動(dòng)增量整數(shù)并讓數(shù)據(jù)庫(kù)管理系統(tǒng)處理主鍵,還是應(yīng)該將它們定義為 int 并在 Visual Studio 項(xiàng)目中以編程方式填充它們,如果是這樣該怎么做?我并不是在尋找完整的解決方案,只是為了提示什么是最好的方法。我是個(gè)初學(xué)者,所以請(qǐng)溫柔一點(diǎn)......
查看完整描述

2 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

一般來(lái)說(shuō),自動(dòng)遞增(或identityserial)主鍵是可行的方法。您通常不希望應(yīng)用程序擔(dān)心諸如值是否已被使用之類的事情。

如果您的應(yīng)用程序是多線程的(即同時(shí)有多個(gè)用戶),那么數(shù)據(jù)庫(kù)將處理任何沖突。那是相當(dāng)方便的。

我很喜歡數(shù)據(jù)庫(kù)創(chuàng)建的代理鍵。在按主鍵對(duì)行進(jìn)行聚類(排序)的數(shù)據(jù)庫(kù)中,使用自動(dòng)遞增的值會(huì)更有效。數(shù)據(jù)庫(kù)可以解決這個(gè)問(wèn)題。

在某些情況下,您需要自然鍵。當(dāng)然,這也是允許的。但是,如果您要為表發(fā)明主鍵,請(qǐng)讓數(shù)據(jù)庫(kù)來(lái)完成這項(xiàng)工作。


查看完整回答
反對(duì) 回復(fù) 2023-09-09
?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

在為 CRUD 操作定義數(shù)據(jù)庫(kù)支持結(jié)構(gòu)時(shí),您需要問(wèn)自己:

我的主鍵高度可預(yù)測(cè)重要嗎?

我的意思是,如果我將用戶啟動(dòng)到諸如“whatever.com/something/edit/1”之類的屏幕

除了明顯的安全性之外,用戶可以操縱 url 并將 2 或 3 或 4 注入路徑中是否有助于或損害業(yè)務(wù)流程?

如果沒(méi)關(guān)系,那么絕對(duì)將其設(shè)置為數(shù)據(jù)庫(kù)端的自動(dòng)增量 int 并將該區(qū)域的責(zé)任轉(zhuǎn)移給數(shù)據(jù)庫(kù)來(lái)處理。您現(xiàn)在不必再高度關(guān)注處理密鑰生成。

如果確實(shí)重要,則將主鍵設(shè)置為唯一標(biāo)識(shí)符。在代碼中添加新記錄集時(shí),您將生成一個(gè)新的 GUID 并將其設(shè)置為主鍵 (Guid.NewGuid())。這將防止用戶以不受控制的方式遍歷您的數(shù)據(jù),因?yàn)殡S機(jī)猜測(cè) GUID 會(huì)給他們帶來(lái)問(wèn)題。EX:新路徑:“whatever.com/something/edit/0f8fad5b-d9cb-469f-a165-70867728950e”

并不是說(shuō)不可能偶然發(fā)現(xiàn)一些東西,但使用您的應(yīng)用程序的普通人不會(huì)那么傾向于去探索 url 操作,因?yàn)樗麄儠?huì)浪費(fèi) 99.99% 的時(shí)間在無(wú)效的帖子上嘗試猜測(cè)已注冊(cè)的有效 GUID在你的數(shù)據(jù)庫(kù)中。

作為補(bǔ)充評(píng)論,如果您決定將主鍵保留為 int 并且不使用自動(dòng)增量,那么您只是在為自己做大量不必要的工作,而我個(gè)人從未見(jiàn)過(guò)邏輯的任何真正投資回報(bào)您應(yīng)該檢查占位符是否已被使用。那并考慮追蹤歷史嗎?如果您決定從表中刪除記錄然后重新使用它們,那么您將陷入痛苦的世界。除了你正在做的事情之外,這是你必須處理的另一組問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2023-09-09
  • 2 回答
  • 0 關(guān)注
  • 164 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)