具有不同关联的不同类型的群体。怎么组织这个?

时间:2011-05-23 16:10:48

标签: database-design cakephp

我正在cakePHP中编写一个应用程序,但这更像是一个普通的数据库问题。我是编写数据库应用程序的新手,也是cakePHP的新手。

在我的应用程序中,有用户,以及可以与之关联的2种不同类型的组。例如。

类型A - 类型A的组包括{新用户,有经验的用户,高级用户,管理员,超级用户}之类的内容。用户必须属于1且仅属于这些组中的1个。这些组主要用于控制用户可以对应用程序执行的操作。

类型B - 类型B的组包括{朋友,家人,同事,小混合,中等混合,大混合等...}用户可以属于许多这些组或没有所有。这些小组主要用于控制我们邀请某些职能和事件的人。

起初我以为我会有一个名为“Groups”的表,只需添加一个名为“type”的恶魔,这样我就可以保持它们不同但重用同一个表。对于2种不同类型的群体,所有字段很可能是相同的。

但是,我认为这不会起作用,因为用户只能属于A类中的1个,但它们可以属于B类中的任意数量的组。如果仅使用1个表,关系是如何不同的?

我唯一想到的就是创建2个表,每个表类型一个。这些字段至少暂时会重复,但这会让我与用户表有不同的关系,例如有一个,有0或更多......

有更好的方法吗?我建议的解决方案是否合适

1 个答案:

答案 0 :(得分:0)

在我看来,2个单独的表是正确的解决方案,因为您有2个不同的概念,您称之为“组”。只需将第一个“群组”重命名为其他内容,例如“类别”,这一切都有意义。