数据库架构:用户团队管理

时间:2012-01-30 12:32:23

标签: mysql database-design ruby-on-rails-3.2

我有用户,他们是会员资格表中多个团队的成员。每个团队都有一名管理员。

我的问题是:

admin列应该是成员资格表中的布尔值,还是团队表中的整数(用户ID)?< / p>

1 个答案:

答案 0 :(得分:1)

最简单的是,是:在会员表中,因为这是用户和团队之间的链接。在这种情况下,您可以更灵活地添加例如2个管理员。另一种方式也是有效的,考虑到它确保明确地拥有1名管理员。

缺点是例如存在一个你应该强制执行的关系,所以admin_id总是链接到一个真正属于团队成员的用户。因此,在删除时,您应该检查此管理员是否仍然可用。

进一步思考:考虑你是否有多个角色,如果是这种情况,你可以使用更复杂但更灵活的解决方案,如ACL和事物。