显而易见的答案是,将一列作为字符串是没有意义的,因为您无法对其执行任何正常的数据库查询。但是说你想存储用户信息,例如他们的用户名,姓名和电子邮件的隐私首选项等等。
将此作为单个列命名,例如,“settings”会更好地表现,因为这些变量不会与其他任何模型一起使用吗?
此变量类似于“{username => true,name => true,email => false}”,可在运行时处理。
答案 0 :(得分:0)
在性能方面需要考虑很多因素。如果连接或数据库服务器速度很慢,那么按照建议(提高性能)可能是正确的。
但是,请记住,您仍然需要解析字符串。
在大多数专业项目中,这将被视为可怕的做法。像你建议这样做会使代码非常难以维护。它为各种各样的东西打开了大门,比如喜欢的颜色,等等。
如果你正在修补你的地下室,那就去做吧,但是如果你想以写代码为生,那就太可怕了。
答案 1 :(得分:0)
您创建的字符串将比存储单独的列消耗更多空间,因此表行会更大,并且数据库服务器上的缓存效率会降低。我根本没有看到潜在的性能优势。
我认为这可能是可接受的数据库实践的唯一情况是: