Php 维护数据库中表的多级层次结构

Php 维护数据库中表的多级层次结构,php,mysql,facebook,facebook-graph-api,graph,Php,Mysql,Facebook,Facebook Graph Api,Graph,我必须维护喜欢某个特定类别帖子的朋友列表的数据。这可能是在任何级别。例如。 如果a的朋友B喜欢通缉令。然后我会保存A的朋友和B的朋友的记录。基本上我的要求是 如果用户访问我的产品网站,我必须告诉他/她,你正在跟踪的朋友已经访问了相同的网站,他们实际上建议你使用此网站,并建立信心,你在正确的道路上,因为你的朋友也在使用它。我还想建议A,B的朋友C现在正在使用这个产品,C建议很多人使用它 我知道这个逻辑已经在好的网站上实现了。 我只是个新手。所以请建议我后端数据库和前端所需的东西。 特别是这个问题是

我必须维护喜欢某个特定类别帖子的朋友列表的数据。这可能是在任何级别。例如。 如果a的朋友B喜欢通缉令。然后我会保存A的朋友和B的朋友的记录。基本上我的要求是 如果用户访问我的产品网站,我必须告诉他/她,你正在跟踪的朋友已经访问了相同的网站,他们实际上建议你使用此网站,并建立信心,你在正确的道路上,因为你的朋友也在使用它。我还想建议A,B的朋友C现在正在使用这个产品,C建议很多人使用它

我知道这个逻辑已经在好的网站上实现了。 我只是个新手。所以请建议我后端数据库和前端所需的东西。 特别是这个问题是如何在数据库中维护记录。所以我在问数据库我应该使用什么,而不是我应该如何实现,这将是下一步。 因为我计划使用图形数据库。在图中,可以是bigdata或Neo4j。
我们非常欢迎您的想法,并将对您的想法表示感谢。感谢

朋友关系是一个经典的多对多方案。您需要两个表来实现此功能: 1.包含个人数据(如姓名、电子邮件等)的表可能比个人属性关系更复杂
2.包含好友关系数据的表,通常它包含关系所代表的好友ID对和一些关于关系本身的数据,如类别朋友/家人/同学等,亲和力级别如果>0则表示正关系,我希望我的逻辑可以让您前进几步

最初,我们必须保存共同的朋友记录

敌人的例子

id  mut_id
1   2,3,4
这里2、3、4是你的朋友

接下来,我们需要维护购买/访问的记录

prod_id buy_id
1       2,1

现在假设3个id想要购买或访问站点,那么我们可以显示您的朋友已经访问或购买了产品

主要是我要的是处理这种复杂结构的数据库,它很容易访问,而且必须很快。这是这种结构的基本示例。为了提高生产率,您可以向id\u person和id\u person\u相关字段添加非唯一索引:在relationshipid\u person上创建索引关系\u id\u person;在relationshipid\u person\u related上创建索引关系\u id\u person\u related;您似乎在问什么样的DBMS数据库管理系统适合您的需要。任何关系数据库管理系统都是合适的。例如,MySQL就是一个例子。谢谢Vamshi,但实际上我要求的是一个合理的数据库,而不是逻辑。不,我问的是数据库我应该使用什么数据库。mongoDB或任何图形数据库。继续使用mongoDB
prod_id buy_id
1       2,1