将关系存储到一个字段中的许多不同表中是一个好主意吗?

时间:2014-04-16 20:31:27

标签: postgresql database-design relational-database

我有4个基本模型,存储在下表中:

  • 用户
  • 图像
  • 视频
  • 帖子

在应用程序逻辑中,用户可以"爱" imageurlpost(例如,用户点击图片或视频旁边的小心脏等)。所以我必须保持所有的爱#34;在数据库中。我的想法是使用表loves和以下列:

id - love id, primary_key
user_id - id of user who loves something, foreign_key
entity_type - type of entity which is loved by user, enum('image', 'video', 'post')
entity_id - id of entity which is loves (either image_id, video_id, post_id)

unique index on (user_id,entity_type,entity_id) -> user can love unique entity only once

在此解决方案中,我无法在foreign_key上声明loves.entity_id因为我不知道它引用哪个表格...

这是一个好方法吗?

有比这更好的解决方案吗?

我正在使用postgres,但我使用mysql标记了问题,因为可能是关系数据库中的一般问题?

0 个答案:

没有答案