我正在建立一个社交网站,我正在制定提要的工作方式。我想在这里使用答案:如何在社交网络中实现活动流并实现提到的数据库设计:
id
user_id (int)
activity_type (tinyint)
source_id (int)
parent_id (int)
parent_type (tinyint)
time (datetime but a smaller type like int would be better)
问题是我不知道如何映射source_id
based off activity_type
。如果用户注册,我希望成为source_id
注册的用户。如果有人创建了一个组,source_id
则该组将是该组。我知道我可以只使用没有密钥的简单 ID 我只是想知道 Symfony 是否有某种内置方法可以做到这一点。
如果我获取提要并且activity_type
是 user_register,我希望能够在不运行额外查询的情况下获取源(用户):
$feedEntity->getSource()->getUsername(); //getSource() being the User entity
如果source_type
是“user_post”:
$feedEntity->getSource()->getMessage(); //getSource() being the UserPost entity
我基本上只是想找到存储这些数据并使其最快的最佳方式。