【发布时间】: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