我正在创建Ruby on Rails网站。用户可以从我提供的有限的头像集中获得头像,例如turntable.fm。就像Turntable.fm一样,根据使用级别,他们可以从不同级别选择不同的化身。

我正在考虑使用脚手架创建虚拟形象,因此有一个MVC。

rails generate scaffold avatar file_name:string, level:integer


(对于非红宝石专家;))所以我的头像mysql表的列将具有id,file_name和level。

并将avatar_id添加到User表。

我想知道这是解决这个问题的正确方法吗?
我只是在阅读有关BLOB并将图像存储在数据库中的信息,是否需要做类似的事情?

谢谢!
米娜

最佳答案

这取决于您有多少个化身图像,如果它们不超过一万个或更多,请按照建议的方式进行操作,否则请确保已阅读this question

然后,另一个问题是,如果需求有很大变化,例如为了支持定制化身,您是否希望将它用于未来?在这种情况下,您可能需要在表中添加更多内容,例如将文件保存到的目录的路径。

同样是否需要file_name列也有争议,您也可以使用avatar_id作为文件名。也许您需要为化身添加一个名称/标签,但是并不需要这样命名文件,并且最好不要实际使用它(在这里考虑i18n,特殊字符但不仅限于此)

然后,正如已经提到的,如果您认为文件本身有任何优点,可以尝试将文件本身保存在数据库中(我自己不会这样做,但是可以通过这种方式使用有效的pro参数,请参见here关于该主题的讨论)

10-04 19:21