2016-09-14 4 views
0

Я строю архитектуру базы данных. Я также прочитал this guide Таким образом, я бы следующие модели:Определить рельсы ассоциации

Автор

name, has_many:questions, has_many:comments, has_many:edits 

Вопрос

title, body , author_id, has_many:comments, belongs_to:author 

Комментарий

body, question_id, author_id, belongs_to:question, has_many:edits, belongs_to:author 

Редактировать

body, comment_id, author_id, belongs_to:comment, belongs_to:author 

Как вы можете видеть, вопрос может иметь много комментариев и каждый комментарий может иметь много изменений. И у автора может быть много вопросов, изменений и комментариев.

Главный вопрос: использовал ли я has_many и belongs_to ассоциации правильно ?!

Дополнительная информация: Я не знаю, если это уместно, но я хочу использовать следующие каркасных миграции:

rails generate scaffold Question title:string body:text author_id:integer has_many:comments belongs_to:author 

rails generate scaffold Comment body:text question_id:integer author_id:integer belongs_to:question has_many:edits belongs_to:author 

rails generate scaffold Edit body:text comment_id:integer author_id:integer belongs_to:comment belongs_to:author 

rails generate scaffold Author name:string has_many:questions has_many:comments has_many:edits 

UPD: Мои подмости неверны. Я должен использовать что-то вроде этого:

рельсов генерировать эшафот названия Вопроса: Строка тела: текст пользователей: ссылки рельсов генерировать эшафот Комментарьего тело: текст пользователей: ссылки вопрос: ссылки
рельсов генерировать эшафот Редактировать тело: текст пользователь: ссылки вопрос: ссылки

As suggested here

+0

Почему кто-то отказался от этого ?! – user2950593

+0

Вы могли бы отформатировать свои модели и их ассоциации в качестве кода? проще понять логику ваших ассоциаций, если мы увидим фактический код. – jaydel

ответ

0

Обе ваши ассоциации и каркасы являются правильными. Я бы просто советовал использовать зависимый:: уничтожить после всех ваших ассоциаций, принадлежащих role_to, поэтому, когда, например, автор удаляется, все его вопросы также удаляются из вашей базы данных.

Например:

Class Question < ActiveRecord::Base 
belongs_to :author, dependent: :destroy 
end 

Таким образом, вы можете избежать большой беспорядок в вашей базе данных.

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