更好地跨表传播或使用数组的图像及其属性?

时间:2013-07-03 22:26:59

标签: ruby-on-rails ruby-on-rails-3 database-design

我正在构建我的第一个rails应用程序,这是我第一次处理这种复杂程度的应用程序,我想知道设计数据库的最有效/最好的方法。

我有“东西”,每个“东西”都有价格和许多图像。

拥有A:

会更好吗?

一个包含3列的表 - id,price,images(是一个数组或散列存储属性,如width / height,url等)。

或者有B:

两个表,一个用于“事物”,一个用于“图像”,图像列是各种属性?然后让图像属于“事物”

由于

2 个答案:

答案 0 :(得分:1)

您绝对应该选择B.尽管与images相关联,但您将things作为单独的存在。维护和扩展它将更加简单。

答案 1 :(得分:0)

与B一起去。最重要的是检查这些Gems处理图像:

https://github.com/thoughtbot/paperclip

https://github.com/carrierwaveuploader/carrierwave

观看这些RailsCasts以获取有关如何使用它们的信息:

http://railscasts.com/episodes/134-paperclip

http://railscasts.com/episodes/253-carrierwave-file-uploads

您希望从“事物”到图像之间存在一对多关联,请在此处详细了解如何执行此操作:

http://guides.rubyonrails.org/association_basics.html#the-has-many-association

不要忘记将价格存放在便士中! :)