【发布时间】:2023-03-11 04:39:01
【问题描述】:
我正在查看文件上传 gem,似乎倾向于将所有资产放在单个“资产”表中,并使用 STI 对其进行子类化。比如ImageAsset、VideoAsset、AudioAsset等
我是 Rails 新手,从未使用过 STI。以前我只会制作images、videos、audios 单独的表格。当然,他们可能会共享几列,但我会说他们也会有一些不同的列(例如,采样率不适用于图像)
将所有这些都填充到一个“资产”表中的优点:更容易对所有资产运行查询。缺点:桌子会更快变大。我想如果这是一个问题,我总是可以在“类型”列上分片。此外,我预计图像行上的所有纯音频列都将为空,等等。
我的整个应用程序都将基于资产,因此我想在做出决定之前确定自己的利弊。有没有人做过 STI 资产并后悔过?有没有人做过并且不后悔(对于大量资产)? CTI(类表继承)在这里会是更好的解决方案吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord single-table-inheritance class-table-inheritance