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

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

將分隔列表存儲在數據庫列中真的那么糟糕嗎?

將分隔列表存儲在數據庫列中真的那么糟糕嗎?

qq_花開花謝_0 2019-05-20 17:29:45
想象一下帶有一組復選框的Web表單(可以選擇其中的任何一個或全部)。我選擇將它們保存在存儲在數據庫表的一列中的逗號分隔值列表中。現在,我知道正確的解決方案是創建第二個表并正確地規范化數據庫。實現簡單的解決方案更快,我想快速獲得該應用程序的概念驗證,而無需花費太多時間。我認為節省的時間和更簡單的代碼在我的情況下是值得的,這是一個可辯護的設計選擇,還是我應該從一開始就將它標準化?更多上下文,這是一個小型內部應用程序,實際上取代了存儲在共享文件夾中的Excel文件。我也在問,因為我正在考慮清理程序并使其更易于維護。在那里有一些我并不完全滿意的事情,其中一個是這個問題的主題。
查看完整描述

6 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

關于SO的問題有很多問題:

  • 如何從逗號分隔列表中獲取特定值的計數

  • 如何從該逗號分隔列表中獲取僅具有相同2/3 / etc特定值的記錄

逗號分隔列表的另一個問題是確保值一致 - 存儲文本意味著拼寫錯誤的可能性......

這些都是非規范化數據的癥狀,并強調了為什么要始終為規范化數據建模。非規范化可以是查詢優化,在需要實際呈現時應用


查看完整回答
反對 回復 2019-05-20
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

一般來說,如果符合項目要求,任何事物都可以防御。這并不意味著人們會同意或想要捍衛你的決定......

通常,以這種方式存儲數據是不理想的(例如,難以進行有效的查詢),如果修改表單中的項目,可能會導致維護問題。也許你可以找到一個中間地帶并使用代表一組位標志的整數代替?


查看完整回答
反對 回復 2019-05-20
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

是的,我會說這真的很糟糕。這是一種可辯護的選擇,但這并不能使其正確或良好。

它破壞了第一個正常形式。

第二個批評是將原始輸入結果直接放入數據庫,而沒有任何驗證或綁定,這使您對SQL注入攻擊持開放態度。

你所謂的懶惰和缺乏SQL知識的是新手所構成的東西。我建議花點時間做好,把它看作是學習的機會。

或者保持原樣并學習SQL注入攻擊的痛苦教訓。


查看完整回答
反對 回復 2019-05-20
  • 6 回答
  • 0 關注
  • 696 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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