【发布时间】:2017-02-12 10:45:25
【问题描述】:
背景:我是 Rails 新手,我已经完成了 Michael Hartl Ruby on Rails 教程。 我已经阅读了使用 Rails 5 进行敏捷 Web 开发。 因此,为了练习,我试图设计类似 WhatsApp 的框架,但在创建用户和组模型时遇到了困难。
问题:我尝试了不同的用户和组模型关系,但由于某种原因,每一个都失败了。我尝试了一些路径,所以我将在下面列出它们。我不需要代码,只是 User,Admin,Group,Participants 之间正确的数据库关系。另外我们应该可以通过 UI 添加关系。
- 我们有两个表 User 和 Group.Admin belongs_to Group.Group has_many Admins。组 has_many 参与者。 Participant belongs_to group。Participant 是一个新表,包含 user_id 和 group_id。
- 我们有三个表 User、Group 和 Admin_Participant。Admin_Participant 表包含 admin_of 列和参与者_of 列,一个 user_id column.admin_of 和参与者_of 将包含 group_ids。
- 与 first 类似,但我们有一个不同的 admin 表,其中包含 user_id、group_id、is_admin 的布尔表。
- 组是对用户的引用,管理列是布尔值。参与者被添加到用户表中,也是一个布尔值。
还有一件事一旦用户创建了组,他就会被分配为该组的管理员。记住参与者的限制。
【问题讨论】:
-
应该可以只使用三个表:组、用户和参与(user_id、group_id、is_admin)。
标签: mysql ruby-on-rails ruby