我希望在我的应用中实现类似Twitter的用户提及功能,使用@username来提及用户。但是,在我的应用中,用户名可能会更改。我的方法是在保存帖子到数据库之前解析帖子并将所有@username转换为@userId。您认为这个方法怎么样?有没有更好的替代方案?
请将原始文本保留,创建一个包含uid和用户名的相关记录表。
示例架构:
post [表]
id
text
user_mention [table]
id
post_id
user_id_mentioned
user_name_mentioned
是的,我认为在发布时检查用户名列表,并将其内部转换为用户ID是有意义的。然后,每当您显示帖子时,将用户ID转换回当前用户名。
请注意,对于非动态内容(例如发送的电子邮件等),这将更加困难。
此外,我会确保以一种清晰明了的方式显示用户名,以表明它们不是OP发布的单词,否则,这将为用户提供一种向他人的帖子中注入文本的方法。
"/@(\w+)/is"
我看到了很多更复杂的正则表达式来实现这个目的。但我认为这已经足够了。你的意见呢? - nezgerland/@(\w+)/
是乐观的 - 它可以匹配例如user@example.com
的字符串。 - zigdon