在数据库驱动的网站中使用图形,树和其他高级数据结构的方法有哪些?

时间:2011-04-14 13:54:50

标签: php facebook data-structures relational-database social-networking

那么LAMP堆栈中的简单$array()变量何时不够?我确信这些高级数据结构很有用,但我想知道是否有人可以在网络环境中建议一些用途,特别是在社交网络和类似数据驱动网站中通常使用它们的用途?

2 个答案:

答案 0 :(得分:3)

答案是,在任何足够复杂的系统(网络或非网络)中,不同的数据集以不同的方式和不同的时间使用,数据的使用方式决定了所使用的结构。例如,树很快就可以查找,因为二进制搜索非常有效,并且根据结构也可以快速插入,而链接列表可以快速插入/删除,但跳转到特定点(根据需要在二进制搜索中)非常慢,因为你必须走列表。在另一方面,数组列表在搜索时要快得多,但插入/删除可能会非常慢。

因此,简而言之,所使用的结构主要取决于所访问数据的性能需求,无论平台如何。

答案 1 :(得分:2)

简短回答:在任何有明确“父母”的实体的情况下,可以使用树。例如,假设您有一个仅限受邀者的社交网络。在这种情况下,您可以将用户构造为树,并在每个用户数据库条目中包含“父”条目。

很抱歉,如果我误解了你的问题,但它非常模糊。对于使用树的变量的情况,考虑我们可以在上面的示例中遍历数据库并从现有用户构造一个树来执行某种操作。