Это правильный путь для базы данных? - PullRequest
0 голосов
/ 28 мая 2010

У меня проблема с базой данных.

Хорошо, у меня есть две модели -> Page и Item. Страница для отображения некоторого контента. Item -> это описание предмета.

Итак, я работаю над небольшой электронной коммерцией shop.

Хорошо, все эти модели могут иметь некоторые комментарии.

Итак, это моя модель комментариев на данный момент:

Комментарии ->

string : id
text : body
integer : page_id
integer : item_id

Поэтому, когда кто-то добавит комментарий на страницу -> page_id будет заполнен текущим идентификатором страницы.

И если кто-то добавит комментарий к элементу -> item_id будет заполнен.

Хорошо, я знаю, как лучше всего создать STI или Polymorphic Assoc, но мне действительно нужен этот способ для моей ситуации?

Извините за мой плохой английский, я из России. =)

1 Ответ

1 голос
/ 28 мая 2010

Несмотря на то, что у вас работают таблицы и модели, вам следует рассмотреть возможность использования polymorphic. Вам не нужно использовать , но я считаю, что это самый рекомендуемый способ.

Чтобы использовать polymorphic associations, вам нужно изменить свои модели:

class Comment < ActiveRecord::Base
   belongs_to :commentable, :polymorphic => true
end

class Item < ActiveRecord::Base
   has_many :comments, :as => :commentable
end

class Page < ActiveRecord::Base
   has_many :comments, :as => :commentable
end

и ваша таблица comments, которые теперь будут иметь следующие столбцы:

integer : id # should be integer, not string
text    : body
integer : commentable_id
string  : commentable_type 

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...