党管理应用。如何私人派对?

时间:2011-05-26 22:49:29

标签: database-design cakephp cakephp-1.3 relational-database

我正在编写一个管理各方的应用程序。我有一些基本的表格:

用户:已注册使用该应用程序的人员 组:用户可以属于许多组。例子包括:{FAMILY,FRIENDS}
USERS_GROUPS:用户所属的组。
缔约方:已创建的不同方。
USERS_PARTIES:加入表(用户将参加哪些聚会)

我现在想要实施私人派对的概念。只允许在邀请列表中的用户查看和注册此私人聚会。我希望能够基于每个用户或/和群组邀请用户参加此聚会。

执行以下操作似乎是一个糟糕的解决方案:
1)向PARTIES添加一个名为private的字段。这将是1或0 2)创建一个名为GROUP_INVITATIONS的新表。这将用于指定邀请哪些组参加活动。
3)创建一个名为USER_INVITATIONS的新表。这将用于指定邀请哪些用户参加活动。

以上是合理的解决方案吗?有没有更好的方法来解决这个问题?作为旁注,CakePHP具有ACL(访问控制列表)的概念,但这仅允许用户成为1组的一部分。这似乎是限制访问MCP应用程序的某些操作的单独问题。我计划使用ACL来执行此操作,但在这种情况下,用户将属于一个且只有一个角色,这将确定他们可以在Web应用程序中访问哪些功能。

1 个答案:

答案 0 :(得分:0)

好吧,我认为你的方向正确。

绝对是模型private的布尔字段(标志)Party

我不会创建groups_invitations表。相反,当邀请一个组时 - 为属于该组的每个用户创建一个邀请。我认为这样更容易。

对于users_invitations表...可能会尝试将其包含在users_parties表中(如果您想严格遵循Cake的约定 - 它实际应该是parties_users)。类似的东西:

id
party_id
user_id
coming (boolean)

当用户被邀请参加私人聚会时,您在他和聚会之间创建了一个链接(记录),由他将coming更改为true。对于公共方 - 用户在声明到达时创建链接(记录)(将coming设置为true)。有关添加(和删除)HABTM记录的信息,请参阅this great behavior

好吧,花点时间考虑一下 - 也许在联接表中包含邀请函并不是最好的主意 - 我想这太复杂了。期待对此发表一些评论,因为我已经被撕裂了。