ROR/Mysql设计问题:如何在数据库中存储化身

ROR/Mysql设计问题:如何在数据库中存储化身,mysql,ruby-on-rails,database-design,Mysql,Ruby On Rails,Database Design,我正在创建一个RubyonRails网站。用户可以从我提供的一组有限的化身中获得化身,比如turntable.fm。同样,像Turntable.fm一样,根据使用级别,他们可以从不同级别选择不同的化身 我正在考虑用scaffold创建头像,所以要有一个MVC rails generate scaffold avatar file_name:string, level:integer (对于非ruby专家;))所以我的avatar mysql表的列应该有id、文件名和级别 并且还将化身id添加到

我正在创建一个RubyonRails网站。用户可以从我提供的一组有限的化身中获得化身,比如turntable.fm。同样,像Turntable.fm一样,根据使用级别,他们可以从不同级别选择不同的化身

我正在考虑用scaffold创建头像,所以要有一个MVC

rails generate scaffold avatar file_name:string, level:integer
(对于非ruby专家;))所以我的avatar mysql表的列应该有id、文件名和级别

并且还将化身id添加到用户表中

我想知道这是解决这个问题的正确方法吗? 我刚刚读到关于BLOB和在数据库中存储图像的内容,我需要做类似的事情吗

谢谢!
米娜使用。它的使用非常简单,功能也非常强大。

这取决于你有多少头像图像,如果它们不是数万张或更多,按照你建议的方式来做应该是可以的,否则一定要阅读

然后另一个问题是,你想让它成为未来的证明,以防需求在很大程度上发生变化,例如为了支持定制化身。在这种情况下,表中可能还需要一些内容,比如文件将保存到的目录的路径

此外,您是否需要一个
文件名
列也是有争议的,您也可以使用
avatar\u id
作为文件名。也许你需要一个头像的名称/标签,但不需要这样命名文件,最好不要这样做(这里考虑的是i18n,特殊角色,但不仅仅如此)


然后,如前所述,如果您认为该文件有任何优点,您可以尝试将其自身保存在数据库中(我自己不会这样做,但这样做有有效的赞成理由,请参阅有关该主题的讨论)

关于在数据库中存储图像,存在一些问题;普遍的共识是“除非你必须这样做,否则不要这样做”。我的意思是更多地围绕现有的头像进行设计,所以我们不想让用户“上传”他们自己的图像。