Я смотрю на драгоценные камни для загрузки файлов, и, похоже, существует тенденция помещать все активы в одну таблицу «Активы» и использовать STI для их подкласса. Например, ImageAsset
, VideoAsset
, AudioAsset
и т. д.
Я новичок в Rails и никогда не использовал STI. Раньше я бы просто сделал images
, videos
, audios
отдельные таблицы. Конечно, они могут иметь несколько общих столбцов, но я бы сказал, что у них также будут несколько разных (частота дискретизации не применяется, например, к изображению).
Плюсы запихивания всего этого в одну таблицу «ассеты»: проще выполнять запросы по всем ассетам. Минусы: стол быстрее разрастается. Думаю, я всегда мог бы разбить столбец «тип», если это проблема. Также я ожидаю, что все столбцы только для аудио будут нулевыми в строках изображений и т. д.
Все мое приложение будет основано на активах, поэтому я хочу убедиться, что у меня есть плюсы и минусы, прежде чем принимать решение. Кто-нибудь делал активы STI и сожалел об этом? Кто-нибудь так делал и не пожалел (на большую сумму активов)? Будет ли CTI (наследование таблиц классов) лучшим решением?