回答
是的,VARCHAR是存储字符串的首选数据类型。
但是,将多个值存储在同一个字段中并不是首选。多值属性通常作为数据库设计中的表实现。
因此,varchar可以存储像逗号字符?而且 - 如果你说在相同的字段中存储多个值是不推荐的,那么如果我想要存储这些子字符串的单独表是不必要的,那么你有什么选择? @EmilVikström – user2057574 2013-02-23 23:51:31
是的,一个VARCHAR字段可以存储所有字符。你说新表是“不需要”的,但是你已经取消了设计数据库的正确方法。将多个值存储在同一个字段中打破了关系数据库设计的第一范式(1NF)。结果是很难根据这个属性搜索表,索引不能使用,你不能在属性中存储逗号,因为逗号现在是一个魔术常数,加入这个属性几乎是不可能的,分割这个字符串可能会很笨拙在某些编程语言中等等。 – 2013-02-24 11:07:32
VARCHAR将为您工作。但这并不意味着这是正确的做法。
您应该考虑创建将每个子字符串存储在单独的行或列中的模式。这样数据将更容易阅读,编写,最重要的是搜索。
- 1. 什么是regularexpression允许php中的特定字符
- 2. 什么是替换字符串中不允许的字符的最佳方法?
- 3. 什么是文本字段中允许的字符标准
- 4. 子域中允许的字符是什么?
- 5. 什么是SQL Server中的char/varchar?
- 6. 什么是允许的字符Snapchat的用户名
- 7. 什么是允许用户订阅关键字的好方法
- 8. 什么是在SharePoint的注释字段中允许的最大字符数?
- 9. 为什么printf不允许指定多个格式字符串?
- 10. 什么是SQL Server 2008视图中允许的最大列数?
- 11. 注册插件密码字段中允许的字符是什么?
- 12. 什么是Web服务器文件名称的合法/允许字符?
- 13. 为什么T-SQL允许null和 'NULL'
- 14. 为什么允许空的wchar_t文字?
- 15. iPhone Lite版本 - 什么是允许的?
- 16. JSON.parse中不允许使用什么字符?
- 17. SQL:为什么varchar(50)是默认值?
- 18. 为什么字符串是允许的并且int int不被编译器允许?
- 19. 与允许的字符
- 20. 不允许的字符笨
- 21. 什么是VARCHAR(255)
- 22. 只允许数字字符
- 23. 为什么C++不允许用户定义的运算符?
- 24. 如何允许不允许的密钥字符。在Codeigniter中?
- 25. varchar(-1)是什么意思?
- 26. 什么是允许与DataGridView双向绑定到IQueryable的好方法?
- 27. 无法允许URL这些字符: - %/ \#+
- 28. SQL Server 2008 VarChar(Max)只返回8000个字符。为什么?
- 29. 允许用户定义表格顺序的最佳方法是什么?
- 30. 什么是sql连接字符串中“最大池大小”的最大允许值
当然可以。任何可打印的ascii角色都可以(其他人也可以,但是很快就会变得更加技术化)。 – thebjorn 2013-02-23 23:43:39
如果分隔符用于存储多个值,我强烈建议不要这样做http://en.wikipedia.org/wiki/First_normal_form – 2013-02-23 23:45:03
而且不要在URL中存储opt/val列表,例如URL params或字符串数组领域。将它们存放在一张桌子里。 | --ID-- | --opt-- | --val-- | – 2013-02-23 23:56:07