我有4个基本模型,存储在下表中:
在应用程序逻辑中,用户可以"爱" image
或url
或post
(例如,用户点击图片或视频旁边的小心脏等)。所以我必须保持所有的爱#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
标记了问题,因为可能是关系数据库中的一般问题?