我需要在MySQL數據庫中存儲(可能很長)的文本。文本可能包含特殊字符和非拉丁字母,應該可以對其進行全文搜索。 MySQL 5不能存儲這樣的字符(但在MySQL 6中是可以的),所以我在存儲它之前對URL進行了URL編碼,並在取出之後對其進行解碼。 你認爲這是一個好主意嗎?有人做過這樣的事嗎?你有其他解決方案嗎?是否在數據庫中存儲URL編碼的文本是一個好主意?
1
A
回答
0
不是一個壞主意。
而不是(僅)在提取後進行解碼,您還應該計劃一個進程在構建搜索查詢之前對任何搜索詞進行網址編碼。如果您的應用端邏輯具有通過編碼/解碼過程過濾所有數據的使用功能,那麼您不應該有任何錯誤漏洞通過裂縫。
另外,VARBINARY數據類型可能會避免這個問題嗎? (我可以谷歌這部分我自己,但它是晚,我困了就在幫助集思廣益,睡前現在。)
1
爲什麼不使用Unicode,用編碼UTF8 - MySQL 5 supports it
+1
由於一些有問題的字符不是UTF-8,而是MySQL 5不支持的UTF-16。 當試圖通過JDBC存儲這些字符時,它們被存儲爲'?'當試圖通過MySQL Administrator來執行時,它會引發異常。 – Gabriel 2009-07-16 10:09:20
0
MySQL的Unicode的全文搜索是智能足以在搜索「a」時搜索相關字符,如「á」和「ä」。所以,我不會存儲URL編碼的文本,但使用MySQL的選項。
相關問題
- 1. 在Mongo數據庫中存儲圖像文件,這是一個好主意嗎?
- 2. 在SQL中編寫用於存儲XML的存儲過程是否是一個好主意?
- 3. 使用整數列來存儲美國郵政編碼到數據庫是一個好主意嗎?
- 4. 創建大量couchdb數據庫來存儲註釋是一個好主意嗎?
- 5. 爲數據庫中的每個密碼存儲兩個哈希是一個好主意嗎?
- 6. 數據庫列中的CSV - 不是一個好主意嗎?
- 7. 是否將臨時文件存儲到JackRabbit中是個好主意?
- 8. 將原始數據存儲在cookie中 - 好主意還是壞主意?
- 9. 在Firebase(AngularFire)中存儲HTML,好主意還是壞主意?
- 10. 在數據庫中保存「聊天」數據是個好主意嗎?
- 11. C#,WinForms繪製存儲在ArrayList中的數據。這是個好主意嗎?
- 12. SharedPreferences是否存儲在數據庫中?
- 13. 在數據類中進行數據庫查詢是一個好主意嗎?
- 14. Phonegap存儲,數據庫是否存在
- 15. 在Perl的BEGIN塊中預熱高速緩存是否是一個好主意?
- 16. MSMQ是一個好主意
- 17. 單身REST數據庫資源是一個好主意嗎?
- 18. 將長字符串存儲在數據庫中是否好?
- 19. 使用.settings存儲控件的文本數據是否好?
- 20. RTF文本的編碼 - 是否存在?
- 21. 生成並存儲一個隨機數作爲我班的哈希值是否是一個好主意?
- 22. 在POSTGRES數據庫中爲'postgres'用戶添加密碼是個好主意嗎?
- 23. 將序列化對象存儲在數據庫而不是多個XML文本文件中是一個好主意嗎?
- 24. Strtolower用戶名然後將其存儲在數據庫中是一個好主意嗎?
- 25. 在自己的主體中測試類是否是一個好主意?
- 26. 在CodeIgniter的模型中加載庫是一個好主意嗎?
- 27. 在screwturn維基網站中創建Mercurial存儲庫是個好主意嗎?
- 28. 在數據庫中存儲動態創建的文件路徑是否好?
- 29. 動態創建表以存儲用戶內容是否是個好主意?
- 30. 在Javascript中是一個異步類是一個好主意嗎?
你是對需要想出一種方法來編碼/解碼所有東西,我會考慮一種實現它的方法。 我想過使用VARBINARY和BLOB字段,但不可能對這些類型進行全文搜索。 – Gabriel 2009-07-16 10:20:53