我正在考虑实现一个类似Facebook/Twitter的系统,当用户输入@(或其他特殊字符)时,用户可以选择一个用户名并在帖子中“标记”它们。我知道如何为这种行为编写jQuery,但是这种行为的实际数据(基)结构是什么样子的呢?
我非常怀疑链接是否直接存储在数据库中。既然可以标记多个东西,那么这个结构是什么样子的?
发布于 2010-12-30 15:33:38
我不认为这是一个实际设计的问题(按照我的理解)。
由于每个用户都有一个惟一的ID和一个姓名,您可以查询姓名并将姓名与ID一起从数据库中发送回来。由于它看起来总是相同的...?profile=12345678,因此很简单地从ID构造到人员的链接。
成员和“带标签的东西”之间的联系将是简单的连接表。我会为每个可加标签的对象创建一个单独的表(如“照片”、“消息”等)。因为它可能会提高性能,但其余的听起来相当直接。由于这些资源中的每一个已经具有唯一标识符(如ID或任何其他代理键),因此在连接表内多个标签不成问题(因此用户123可以在消息234和235中,而用户456也可以在消息235中)。
如何找到用户在帖子中的位置:这是一个服务器端的问题。当消息被发送到服务器时,它需要对其进行处理,并将用户名转换为指向用户的链接。由于facebook不允许编辑消息,您可以简单地将普通用户名替换为指向用户的链接,因为编辑不是问题。另一种可能是在消息中保留"@“,并在每次显示帖子时尝试对其进行解析。这更复杂,也会产生更多的开销,但是您的数据库中没有HTML。
https://stackoverflow.com/questions/4559428
复制相似问题