php - 如何存储用户提及

标签 php twitter hashtag

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

最佳答案

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

示例架构:

发布 [表格]

id
text

user_mention [表]
id
post_id
user_id_mentioned
user_name_mentioned

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

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

我的规则是在保存到数据库之前永远不要修改原始的非结构化文本(但要对其进行完整性检查以避免注入(inject)等),并且只在输出时修改数据。这意味着您始终让用户输入数据,而您永远不知道何时会变得有值(value)。

也许有一天,您对谁在被提及 n 次后更改了用户名感兴趣?或者由于您修改了非结构化数据而无法获得的其他报告。您永远不知道何时需要原始数据,在这种情况下,您会获得额外的好处,即让您的文本更易于使用。

关于php - 如何存储用户提及,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7520035/

相关文章:

php - 如何使用 php、jquery 和 ajax 在数据库中插入值

php - WordPress 多站点中断包括/需要 wp-load.php

php - 使用 php 的 mysql 中的默认 SELECT 字段限制?

php - 如何计算PHP目录中.txt文件的数量?

ios - 尝试使用TWRequest进行发布时,获取“无法识别的选择器已发送至实例”

javascript - 推文按钮在 IE7 中无法正确显示,但在 mozilla、chrome 和 IE 8 中工作正常

ruby - 未初始化的常量 Twitter::Search (NameError) ~ Ruby noob

javascript - 从没有#的字符串中提取所有主题标签

mysql - 如何从mysql中获取特定单词的数据?

python - Django-haystack 搜索#hashtag