1

我正在使用 Rails 3,并且我有一个名为 User 的模型,它编写了一个教学大纲。我想添加“共同创作”教学大纲的功能,以便原作者可以邀请不同的用户对内容进行更改。

下面哪些选项更有意义?(如果有更好的,请告诉我)

  1. 将作者属性设为数组属性,这样 Syllabus.author 将是一个包含其所有作者的数组

  2. 为教学大纲创建附加属性,例如 coauthor1、coauthor2

如果第一个更有意义,您能否具体描述我如何将其设为数组属性,并稍后插入其他作者?

我考虑第二种选择的一个原因是因为这样可以区分原作者和其他合著者,也许只有原作者可以删除教学大纲,而其他合著者的权限有限?

4

2 回答 2

1

您还可以像这样制作链接表:

autorhs_syllabus
----------------------
id
author_id integer
syllabus_id integer
original_author boolean 
于 2012-04-28T11:42:03.490 回答
1

您需要规范化您的数据库。我认为您希望为作者和教学大纲提供单独的模型,并通过 has_many_through 关系将它们链接起来。然后,您的链接表可以包含有关特定关系的附加信息,例如作者是否是原始作者。

于 2012-04-28T12:02:39.630 回答