数据库设计 - 投票多个实体类型

时间:2014-05-07 09:26:34

标签: sql database entity-relationship

我为系统设计数据库,用户应该可以投票给多个实体。例如,用户可以投票具有评级值,并且用户也可以投票给其他用户。目前投票仅限于供稿和用户,但未来可以通过照片等实体进行投票。

所以,到目前为止,我已经提出了这样的设计,有3张桌子。

用户

  • id(PK)
  • 用户名
  • ....

饲料

  • id(PK)

  • 文本

  • .....

投票

  • voter_id(FK)
  • voted_object_id(FK但可以与Feed或用户关联)
  • voted_object_type< ----(ENUM(' feed',' user'))
  • RATING_VALUE

根据此架构,投票的对象可以通过字段 voted_object_type 来确定,该字段是ENUM字段,可以是Feed或用户,使 voted_object_id 值Feed Feed ID或User id。 我想知道这种方法的效率如何?这种方法有什么问题,或者有更好的方法吗?

谢谢!

0 个答案:

没有答案