2012-01-25 2 views
0

Я создаю довольно сложное веб-приложение в Rails и сталкиваюсь с проблемой, с которой, как я подозреваю, раньше столкнулись, но для которой я не могу найти решение, согласованное в целом. Проблема связана с ссылкой на ресурсы произвольных типов (и с произвольными соответствующими таблицами) из одного столбца свойств/таблицы модели. Мой случай использования простой лента новостей, где элементы корма имеют вид:Ссылка на произвольный ресурс из модели ActiveRecord

id (int) 
tag (string) 
message (string) 
expiry (date) 
resource_id (string) 

«resource_id» является ссылкой на ресурс, который находится в центре заинтересованного в пункте подачи. В моем проекте у меня в настоящее время он принимает форму «class_name: id». Когда вы выбираете элементы новостей, я создаю набор строк этой формы, соответствующий ресурсам, принадлежащим пользователю, и запускает запрос типа «in» в столбце resource_id. Уместно отметить, что структура приложения такова, что пользователи будут владеть небольшим количеством (< 10) этих ресурсов, поэтому эффективность поиска не является проблемой с этой структурой. Это просто похоже на хакерское и очень неправильное решение, и я подозреваю, что есть более правильный способ делать то, что я пытаюсь сделать.

ответ

1

Я бы использовал две колонки: resource_type и resource_id. Делает соединения более нормализованными.

Смежные вопросы