反馈系统,如Ebay,但对于事件:数据库架构

时间:2010-08-01 17:36:13

标签: database-design events feedback ebay

我正在创建一种类似于Ebay的反馈系统。 (购买商品后,您可以在购买时留下反馈)

但不是产品的事件(派对,会议)。用户可以参加活动 然后只有确认出席的用户才能在事件结束后留下反馈(以event_over布尔值表示)。

我想知道创建行的最佳方法是什么,并允许用户提供反馈。  当用户点击参加新的Event_RSVP行时。

  1. 我是否也应该同时为点击“参加”的用户提供反馈行(他们可以在事件发生时随时更改rsvp状态)。但只允许在事件结束时访问反馈?

  2. 或者我应该一次创建数百个反馈行,当所有参与它的用户的事件结束时?然后允许他们使用反馈

  3. 当前架构

    Event       Event_RSVP      Feedback
    ------      -----------     -----------
    id          id              id 
    user_id     user_id         user_id
    event_over  event_id        event_id 
                rsvp_status     message
    

    有任何意见或建议吗?

1 个答案:

答案 0 :(得分:1)

就反馈而言,我会选择KISS - 仅在填充实际反馈时在“反馈”表中插入新行。无需预先填充行。

另一种选择是简单地将反馈的“消息”字段移回“Event_RSVP”表;并根据反馈更新该字段。这里的缺点是,如果您决定需要,则不能在同一反馈中包含多条消息,而单独的反馈表可以更容易地更改以容纳每个反馈的多条消息。

此外,与反馈无关,如果那是参与者ID,我会从事件中删除user_id(如果它是origanizer ID,我道歉并保留)。事件不应包含用户列表。如果你想跟踪发送邀请的对象,可以创建一个新的“邀请”表(event_id,user_id),或者更好地通过RSVP表跟踪邀请,方法是在发送邀请时插入新行并更新“ rsvp_status“当用户实际使用RSVP时。