Вы можете использовать два метода.
Варианты Один - использовать отношения habtm, такие как:
class Thread
has_and_belongs_to_many :users
end
Однако лично я бы использовал дополнительную модель, поэтому, если она вам даже понадобится, вы можете указать информацию о подписках:
class Thread
has_many :subscriptions
end
class Subscription
belongs_to :thread
belongs_to :user
end
Обычно полезная модель объединения считается лучшей практикой.
Кроме того, я бы не стал беспокоиться о том, насколько «легка» ваша схема базы данных. Базы данных очень хороши в том, в чем они хороши, и поэтому мы позволяем им это делать. Кодирование такого рода информации в виде строки или тому подобного в качестве других проблем и может быть даже менее эффективным.