我需要在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