我正在查看文件上传 gem,似乎倾向于将所有资产放在单个“资产”表中,并使用 STI 对它们进行子类化。比如ImageAsset
, VideoAsset
,AudioAsset
等。
我是 Rails 新手,从未使用过 STI。以前我只会制作images
, videos
,audios
单独的表格。当然,他们可能会共享几列,但我会说他们也会有一些不同的列(采样率不适用于图像,例如)
将所有这些填充在一个“资产”表中的优点:更容易对所有资产运行查询。缺点:桌子会更快变大。我想如果这是一个问题,我总是可以在“类型”列上分片。此外,我预计所有仅音频列在图像行等上都将为空。
我的整个应用程序将基于资产,所以我想在做出决定之前确保我有直截了当的利弊。有没有人做过 STI 资产并后悔过?有没有人做过并且不后悔(对于大量资产)?CTI(类表继承)在这里会是更好的解决方案吗?