<刁鑽專業-程式設計SQL-2> 沈源有 2025.1223

更新 發佈閱讀 4 分鐘

<刁鑽專業-程式設計SQL-2> 沈源有 2025.1223

在 SQL Server, 能夠設定變數型別 numeric(n,0),是「SQL Server 設計欠周到的bug」。

以我程式設計的經驗:

- 只要user能誤用而我的程式卻毫無作為, 那就是bug。

- 系統設計者若只顧標準,不顧防呆,就是欠周到。



--

# 問: 系統設計的兩難?

- 標準遵循:SQL Server必須符合 ANSI SQL 標準,標準允許 numeric(p, s),即使 s=0。

- 防呆設計:如果系統強制阻止「不合理」的用法,就能避免半吊子誤用,但同時也限制了專業人士的特殊需求。

- 專業要求 → 要user自己做正確選擇, 要知道什麼時候用整數,什麼時候用精確小數。


答:

完全沒有問題, 可以用 byte, small int, int, big int 加上 約束條件(上限, 下限.)

byte, small int, int, big int:原生整數型別,效能最佳。

CHECK 約束:直接定義上下限,符合業務邏輯。

結果:既保留了專業人士的精準控制,又避免了半吊子誤用 numeric(n,0)。


系統防呆可能方式:

1. 直接限制, 顯示警告訊息. 規則: type numeric(n, m) - 限制 m > 0 且 m < n

2. SQL Server 看到 numeric(n, 0), 在內部儲存, 運算時, 要自動改為 smallint / int / bigint 加上 限制



--

# 問: 潛在挑戰

- 透明度:使用者可能不知道系統已自動轉換,導致預期與實際不一致。

- 跨平台相容性:其他資料庫可能仍保留 numeric(5,0),移植時會出現差異。

- 設計哲學:SQL Server目前選擇「自由優先」,而不是「防呆優先」。


答:

全部都不成立.

透明度:不需要USER知道, 如果USER要知道, 自己讀文件.

或者完全可以在系統層面顯示「內部最佳化為 int/smallint/bigint」,讓使用者知道,不存在「不一致」問題。

跨平台相容性:如果 SQL Server 在內部最佳化,但對外仍維持 numeric(5,0) 的宣告,跨平台移植時依然相容,差異根本不存在。

設計哲學:說「自由優先」只是藉口。真正周到的設計應該是「自由 + 防呆 + 最佳化」三者並存,並不是二選一。



--

# 車子 vs 系統設計

系統設計:如果程式有一個功能,使用者一旦誤用就會造成隱性危險,而系統卻毫無防呆,那就是程式設計者的 Bug。

車子設計:就像車子, 你不能莫名其妙做一個開關會讓車子出問題, 然後要駕駛不要去按. 這是設計者的責任.

只要使用者能誤用而程式卻毫無作為,那就是 Bug,是「程式設計者的錯」, 而不是「使用者的錯」。

程式設計者的責任不只是「能跑」,也要能「能防止誤跑」。

程式設計就像造車,不能把危險交給使用者自己避免。



---

後記:

我承認我也是半吊子.

現在知識爆炸的世界, 誰不是半吊子?

選自 <<刁鑽>> 沈源有.


留言
avatar-img
Louis Shen的沙龍
1會員
25內容數
刁鑽地刁鑽刁鑽. 刁鑽嗎? 理解刁鑽,透視刁鑽, 驗證刁鑽,實踐刁鑽, 駕馭刁鑽,遊戲刁鑽, 化身刁鑽,刁鑽我。
Louis Shen的沙龍的其他內容
2025/12/24
<刁鑽專業-程式設計SQL-1> 沈源有 2025.1223 在 SQL Server, 用以下 command 建立一個table CREATE TABLE [PERSON]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [NAME] [va
2025/12/24
<刁鑽專業-程式設計SQL-1> 沈源有 2025.1223 在 SQL Server, 用以下 command 建立一個table CREATE TABLE [PERSON]( [Id] [bigint] IDENTITY(1,1) NOT NULL, [NAME] [va
2025/12/22
<刁鑽哲學-通透> 沈源有 2025.1222 老子: 道可道, 非常道. 讓我沈源來補充我的理解: 道不道, 不知道. 孔子: 知我者春秋, 罪我者春秋. 依我沈源有的理解替老子說: 老子: 道德經是明知不可說, 但又不得不說. 所以老子才要莫名其妙地"道"出"
2025/12/22
<刁鑽哲學-通透> 沈源有 2025.1222 老子: 道可道, 非常道. 讓我沈源來補充我的理解: 道不道, 不知道. 孔子: 知我者春秋, 罪我者春秋. 依我沈源有的理解替老子說: 老子: 道德經是明知不可說, 但又不得不說. 所以老子才要莫名其妙地"道"出"
2025/12/19
<刁鑽歷史-律與率> 沈源有 2025.1219 律與率 這二字, 古人用相同/相似發音, 不像是巧合, 對嗎? 🔹 律 - 音律, 法律, 規律, 定律 - 外在的秩序, 規範, 法則。 - 限制與控制, 約束, 框架。 - 是「框架」, 建立秩序的規範。
2025/12/19
<刁鑽歷史-律與率> 沈源有 2025.1219 律與率 這二字, 古人用相同/相似發音, 不像是巧合, 對嗎? 🔹 律 - 音律, 法律, 規律, 定律 - 外在的秩序, 規範, 法則。 - 限制與控制, 約束, 框架。 - 是「框架」, 建立秩序的規範。
看更多
你可能也想看
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
2025年精選21位大屌師傅,最大值21,絕對讓您享受一整年! 文末有贊助內容,可解鎖完整師傅與武器配對,感謝您的贊助,讓我們許願池能永續經營下去,我們成立七年來,大大的減少同志朋友在按摩時被詐騙的數量,讓大家減少踩雷的,讓督促店家提供更高的服務品質。 SSB SPA 小羊 170CM
Thumbnail
2025年精選21位大屌師傅,最大值21,絕對讓您享受一整年! 文末有贊助內容,可解鎖完整師傅與武器配對,感謝您的贊助,讓我們許願池能永續經營下去,我們成立七年來,大大的減少同志朋友在按摩時被詐騙的數量,讓大家減少踩雷的,讓督促店家提供更高的服務品質。 SSB SPA 小羊 170CM
Thumbnail
之前改裝升級Dahon Vitesse D7時發現,Dahon的機構設計工程師專業素養非常高,各種組裝尺寸拿捏得異常緊湊;此次則見證到另一個更古老的版本,如下圖所示,而且是連型號都查不到的單速版本,只知道在社群內都稱呼其為老貂。透過老貂的拆裝,再次證明了,Dahon的細節拿捏顯然是一脈相承的,很可能
Thumbnail
之前改裝升級Dahon Vitesse D7時發現,Dahon的機構設計工程師專業素養非常高,各種組裝尺寸拿捏得異常緊湊;此次則見證到另一個更古老的版本,如下圖所示,而且是連型號都查不到的單速版本,只知道在社群內都稱呼其為老貂。透過老貂的拆裝,再次證明了,Dahon的細節拿捏顯然是一脈相承的,很可能
Thumbnail
宰我問曰:『仁者,雖告之曰:「井有仁焉。」其從之也?』子曰:『何為其然也?君子可逝也,不可陷也;可欺也,不可罔也』(雍也第六)。  井,不能狹義地僅理解為井,而是比喻危險的境地。逝,去;罔,迷惑。   宰我有很強的獨立思考能力,有懷疑精神,不人云亦云,不盲從權威。這
Thumbnail
宰我問曰:『仁者,雖告之曰:「井有仁焉。」其從之也?』子曰:『何為其然也?君子可逝也,不可陷也;可欺也,不可罔也』(雍也第六)。  井,不能狹義地僅理解為井,而是比喻危險的境地。逝,去;罔,迷惑。   宰我有很強的獨立思考能力,有懷疑精神,不人云亦云,不盲從權威。這
Thumbnail
自從開始玩直播和拍開箱影片以後深深覺得房間的光源不足 我們小孩房因為只有小小的大約四五坪,為了擴大使用空間,當初是設計高架床,現在都在床底下拍攝節目,不過透過螢幕就會覺得床底下的燈源略顯不足,不夠亮的話就會使得拍攝的畫質顆粒比較粗,模模糊糊得很難看… 還有一個問題是在床上沒有辦法關燈,雖然當初有
Thumbnail
自從開始玩直播和拍開箱影片以後深深覺得房間的光源不足 我們小孩房因為只有小小的大約四五坪,為了擴大使用空間,當初是設計高架床,現在都在床底下拍攝節目,不過透過螢幕就會覺得床底下的燈源略顯不足,不夠亮的話就會使得拍攝的畫質顆粒比較粗,模模糊糊得很難看… 還有一個問題是在床上沒有辦法關燈,雖然當初有
Thumbnail
你帶過人嗎?那你會帶人嗎?有人教你怎麼帶人嗎?484沒人教你? 向部屬傳達「對你自己有好處」的訊息這個目標「工作」有著oo的目的,一起努力達成吧! 報告/連絡/商量報告/連絡/商量很重要, 請隨時說出你認為重要的資訊何時進行?如何進行?進行的優先順序 反駁主管耐著性子,xx那你覺得該怎麼做才好呢?
Thumbnail
你帶過人嗎?那你會帶人嗎?有人教你怎麼帶人嗎?484沒人教你? 向部屬傳達「對你自己有好處」的訊息這個目標「工作」有著oo的目的,一起努力達成吧! 報告/連絡/商量報告/連絡/商量很重要, 請隨時說出你認為重要的資訊何時進行?如何進行?進行的優先順序 反駁主管耐著性子,xx那你覺得該怎麼做才好呢?
Thumbnail
面試問題百百種,有些問題特別刁鑽如陷阱,如何接招刁鑽面試問題?如何提出讓面試官驚豔的問題?海外求職,該怎麼回答並不存在中文脈絡的問題?這篇分享真實案例和我臨機應變的回答。也分享我如何周旋於丹麥維京人世界,又說服愛爾蘭、法國、哥斯大黎加人,漂到小美人魚故鄉。
Thumbnail
面試問題百百種,有些問題特別刁鑽如陷阱,如何接招刁鑽面試問題?如何提出讓面試官驚豔的問題?海外求職,該怎麼回答並不存在中文脈絡的問題?這篇分享真實案例和我臨機應變的回答。也分享我如何周旋於丹麥維京人世界,又說服愛爾蘭、法國、哥斯大黎加人,漂到小美人魚故鄉。
Thumbnail
「跨年這件事」是甚麼時候開始玩起的         上網查了一下:1986年年底,滾石唱片公司集結李宗盛等旗下歌手在中華體育館(1990年被拆除)舉行「快樂天堂演唱會」,從晚上8點開始到午夜,「快樂天堂演唱會」被視為台灣第一場跨年演唱會。滾石唱片當時打出「1986年最後一秒在喜悅與歡呼中消失,繼起的
Thumbnail
「跨年這件事」是甚麼時候開始玩起的         上網查了一下:1986年年底,滾石唱片公司集結李宗盛等旗下歌手在中華體育館(1990年被拆除)舉行「快樂天堂演唱會」,從晚上8點開始到午夜,「快樂天堂演唱會」被視為台灣第一場跨年演唱會。滾石唱片當時打出「1986年最後一秒在喜悅與歡呼中消失,繼起的
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News