Задать вопрос
@Nicle

Как лучше связывать данные в таблицах?

Есть модели страницы, блоги, фотографии.
Как правильно организовать их взять с моделью комментарии?

У меня на примете два варианта.

1) В модели комментарии добавить поля page_id, blog_id, photo_id. В данном случае получится что в записи только одно поле будем с id, остальные будут NULL.
2) В каждой "родительской" модели добавить поле comment_id. Вот здесь я не представляю как реализовать создание/сохранение.

Какой лучше использовать и есть ли какие "подводные камни"?
  • Вопрос задан
  • 216 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
viktorvsk
@viktorvsk
Полиморфическая связь
Гемы для комментов
Или еще - awesome-ruby.com

Подводные камни в том, что вскоре захочется комменты для разных сущностей иметь.
Ответ написан
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
1. Лучше всего подключить сервис комментариев, например - HyperComments
2. Если же все же вы рискнули делать свой велосипед - то рекомендую делать 3 таблицы!
объясню почему :
- комментарии для страниц могут содержать цитату из страницы или какую-другую ссылку. для блогов тоже такое может быть - а для фото такого нет!
- комментарии для фото могут иметь рейтинг от 0 до 10. а страница и блог могут и не иметь.
- и таких ньюансов может быть много, замучаетесь заполнять на 1/3 таблицу. а 2/3 будут пустые столбцы.

кароче это разные сущности - и лучше в БД их развести по отдельным таблицам. Тогда никаких подводных камней не будет!
Ответ написан
@lavrentiev
Back-end разработчик
Вполне первый вариант его подойдет (будет в нужном месте использовать нужные стобцы), но я бы наверно все-таки разделил как предложил Иван Филатов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы