如何存储用户提及

nez*_*and 2 php twitter hashtag

我想在Twitter中用@username实现用户提及.但是,在我的应用中,用户名可能会更改.我的方法是在保存到数据库之前解析帖子并将所有@username转换为@userId.你觉得这怎么样?有没有人有更好的选择?

Ted*_*Ted 5

按原样存储原始文本,并使用uid和用户名创建相关记录的表.

示例模式:

发表[表]

id
text
Run Code Online (Sandbox Code Playgroud)

user_mention [table]

id
post_id
user_id_mentioned
user_name_mentioned
Run Code Online (Sandbox Code Playgroud)

保存帖子后,您的代码应该通过并创建所有user_mention记录.您可以遍历提及表以发送电子邮件或其他任何您想要做的事情.

如果用户更改了用户名,您现在可以选择使用新用户名更新帖子,或者将旧用户名链接到正确的用户.

我的规则是永远不要在保存到数据库之前修改原始的非结构化文本(但要检查它以避免注入和诸如此类)并在输出时修改数据.这意味着您始终拥有用户输入的数据,而您永远不知道什么时候会有价值.

也许有一天你有兴趣在被提及多次后改变用户名?或者您修改非结构化数据时无法获得的其他报告.你永远不知道什么时候你会想要原始数据,在这种情况下,你会得到额外的好处,让你的文字更容易使用.