【问题标题】:Suggestions for my database design (Networking Users on the website)对我的数据库设计的建议(网站上的网络用户)
【发布时间】:2011-05-01 18:20:03
【问题描述】:

想象一个场景—— 网站上的所有用户都可以相互关联,即彼此成为“朋友”。 我要设计的数据库应该能够处理这样的连接 - 假设 A 是 B 的朋友(也暗示 B 是 A 的朋友)想与 D 连接,D 是 C 的朋友,而 D 是 B 的朋友。 想想社交网络。

我的问题是如何将这些附属公司列表存储在表格中? 到目前为止我尝试过的 - 表格1 - 第 1 列 - User_id 第 2 列 - 会员的 User_id 查询此表以提供某人的关联公司时遇到问题。

表 2 第 1 列 - User_id(A,B) 第 2 列 - 会员的 User_id(B,A) 每个连接由两行而不是一行显示,这使得查询变得容易。

但这两个对我来说都太蹩脚了,你们知道设计这种数据库的更好方法吗?

【问题讨论】:

  • 你想对数据库做什么?您想搜索可能的联系(例如 facebook 的好友建议),或者您只想知道两者在某种程度上是否可以直接连接 您需要多久执行一次查询才能在某种程度上搜索关系?
  • 数据库设计完全取决于您将如何使用模式
  • 我想知道他们是否相距多远,甚至可以提出建议。但问题是我将不得不经常执行查询。现在我只对一个数据库结构感到满意,它足以通过一个查询来搜索这个人的朋友。
  • 你使用的是mysql/oracle还是其他服务器

标签: sql database-design


【解决方案1】:

创建表 1。

在表 1 上创建一个视图,将该表连接到自身以创建表 2 作为表 1 的视图,其中包含三列。

两者都用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 2013-04-30
    • 1970-01-01
    • 2012-10-07
    • 2015-08-23
    • 2020-01-29
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多