亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是最常見的SQL反模式?

什么是最常見的SQL反模式?

慕萊塢森 2019-09-18 10:29:28
我們所有使用關系數據庫的人都已經學習(或正在學習)SQL是不同的。引出期望的結果,并且有效地進行,涉及一個繁瑣的過程,其部分特征是學習不熟悉的范例,并發現我們最熟悉的一些編程模式在這里不起作用。您見過(或自己承諾)的常見反模式有哪些?
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我一直對大多數程序員在數據訪問層中混合UI邏輯的傾向感到失望:


SELECT

    FirstName + ' ' + LastName as "Full Name",

    case UserRole

        when 2 then "Admin"

        when 1 then "Moderator"

        else "User"

    end as "User's Role",

    case SignedIn

        when 0 then "Logged in"

        else "Logged out"

    end as "User signed in?",

    Convert(varchar(100), LastSignOn, 101) as "Last Sign On",

    DateDiff('d', LastSignOn, getDate()) as "Days since last sign on",

    AddrLine1 + ' ' + AddrLine2 + ' ' + AddrLine3 + ' ' +

        City + ', ' + State + ' ' + Zip as "Address",

    'XXX-XX-' + Substring(

        Convert(varchar(9), SSN), 6, 4) as "Social Security #"

FROM Users

通常,程序員這樣做是因為他們打算將他們的數據集直接綁定到網格,并且它只是方便SQL Server格式服務器端而不是客戶端上的格式。


如上所示的查詢非常脆弱,因為它們將數據層緊密耦合到UI層。最重要的是,這種編程風格徹底防止了存儲過程的重用。


查看完整回答
反對 回復 2019-09-18
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

  • 人類可讀的密碼字段,egad。自我解釋。

  • 對索引 列使用LIKE,我幾乎總是想說LIKE。

  • 回收SQL生成的PK值。

  • 驚喜沒人提到神表。沒有什么比100列的位標志,大字符串和整數更像“有機”。

  • 然后是“我想念.ini文件”模式:在大文本字段中存儲CSV,管道分隔的字符串或其他解析所需的數據。

  • 而對于如何使用游標的MS SQL服務器在所有。有一種更好的方法來執行任何給定的游標任務。

編輯,因為有這么多!


查看完整回答
反對 回復 2019-09-18
  • 3 回答
  • 0 關注
  • 720 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號