我正在尝试创建一个架构,该架构与Facebook的一部分非常相似,因此我将以它为例进行说明,因为这样会更容易。
就像Facebook,我们有用户和Facebook页面。两者都可以发布帖子,彼此关注,并且用户都有一个供稿页面,他们可以在其中查看他们关注的实体(用户或页面)的帖子
该页面由一组帐户(页面主持人)管理,他们发表的帖子将显示为该页面中的帖子。
我该如何处理?
我的想法
创建用户表和页面表。用户表有一个名为group_id的列,该列将映射到主持人帐户的页面表ID,因为这两者很相似。
分别创建用户表和主持人表
但是,采用上述方法,由于author_id会有所不同,用户可能会有两个user_id,页面会有page_id。
还考虑对“关注”表进行类似的操作
follower-user_followed-page_followed
1-2-NULL
1-NULL-5
我知道这不是理想的解决方案,从“关注”表中检索user_id和page_id,对用户发布表中的帖子进行查询,然后再对品牌发布表进行查询,将它们合并并显示都会有问题它在供稿上,但是我无法以其他任何方式来解决这个问题。搜索了Facebook模式,但无法在其中找到Pages。请任何指点会有所帮助。
答案 0 :(得分:0)
您应该对不同的实体使用不同的表。
表3和表4提供了这种所谓的“多对多”关系(多个用户可以跟随多个组),因为数据库在框中仅支持一对多或一对一关系