由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Many-to-Many 关系数据存储
相关主题
mongoDB跟传统关系数据库比有什么优势?用数据库做蒙特卡洛模拟的问题
长度不等的时间序列用Matlab或R怎么存储比较方便? (转载)这道题有什么好思路?
问个SQL Server 2005问题 (转载)C++里 variable declaration 有什么用?
数据库能用来存储文件吗?两个C的#define问题
一个SQL的题目请教一个程序调用的内存问题 (转载)
有用riak的吗?嵌套循环,层数可变 怎么实现
SQL add some columns into a table from another table (转载stl的map可以嵌套几层?
大数据面试问题
相关话题的讨论汇总
话题: many话题: 存储话题: friend话题: 关系数据话题: 关系
进入Programming版参与讨论
1 (共1页)
l******0
发帖数: 244
1
如果想存储所有学生以及学生与学生之间的朋友关系,一个表存学生, 另一个表存朋友
关系。
Student(id, name)
Friend (id_from, id_to)
由于关系是双向的,对每个关系,Friend 里面需要存两次,这样才方便查询。
a->b
b->a
但查询语句需要用到两个 Join.
这种多对多关系的存储和检索,关系数据库里面这是常见的方法吗?
Test here:
http://sqlfiddle.com/#!9/5ec63/1
s********r
发帖数: 394
2
双向存储在逻辑上是必须的,比如我加你为好友,你还没有接受时就需要一条纪录,互
加后再加一条反向纪录

★ 发自iPhone App: ChineseWeb 8.7

【在 l******0 的大作中提到】
: 如果想存储所有学生以及学生与学生之间的朋友关系,一个表存学生, 另一个表存朋友
: 关系。
: Student(id, name)
: Friend (id_from, id_to)
: 由于关系是双向的,对每个关系,Friend 里面需要存两次,这样才方便查询。
: a->b
: b->a
: 但查询语句需要用到两个 Join.
: 这种多对多关系的存储和检索,关系数据库里面这是常见的方法吗?
: Test here:

n******7
发帖数: 12463
3
存一遍就可以吧
where 条件加个or就好
n*w
发帖数: 3393
4
很常见

【在 l******0 的大作中提到】
: 如果想存储所有学生以及学生与学生之间的朋友关系,一个表存学生, 另一个表存朋友
: 关系。
: Student(id, name)
: Friend (id_from, id_to)
: 由于关系是双向的,对每个关系,Friend 里面需要存两次,这样才方便查询。
: a->b
: b->a
: 但查询语句需要用到两个 Join.
: 这种多对多关系的存储和检索,关系数据库里面这是常见的方法吗?
: Test here:

p**2
发帖数: 613
5
#1 常见
#2 尽量不用Join,用select嵌套
#3 这种典型的key-value,为啥不用NO-SQL?

【在 l******0 的大作中提到】
: 如果想存储所有学生以及学生与学生之间的朋友关系,一个表存学生, 另一个表存朋友
: 关系。
: Student(id, name)
: Friend (id_from, id_to)
: 由于关系是双向的,对每个关系,Friend 里面需要存两次,这样才方便查询。
: a->b
: b->a
: 但查询语句需要用到两个 Join.
: 这种多对多关系的存储和检索,关系数据库里面这是常见的方法吗?
: Test here:

l******0
发帖数: 244
6
NO-SQL 更简单吗?
关系数据库里面典型的多对多关系,这里用 SQL 也很好吧?

【在 p**2 的大作中提到】
: #1 常见
: #2 尽量不用Join,用select嵌套
: #3 这种典型的key-value,为啥不用NO-SQL?

w********m
发帖数: 1137
7
SQL的复杂度不好分析
理想的状态是一个hash表,表里套个set。
d******k
发帖数: 4295
8
如果朋友都是双向的,存一遍就行了吧。
Friend (id_1, id_2)

【在 l******0 的大作中提到】
: 如果想存储所有学生以及学生与学生之间的朋友关系,一个表存学生, 另一个表存朋友
: 关系。
: Student(id, name)
: Friend (id_from, id_to)
: 由于关系是双向的,对每个关系,Friend 里面需要存两次,这样才方便查询。
: a->b
: b->a
: 但查询语句需要用到两个 Join.
: 这种多对多关系的存储和检索,关系数据库里面这是常见的方法吗?
: Test here:

1 (共1页)
进入Programming版参与讨论
相关主题
面试问题一个SQL的题目
有点挠头有用riak的吗?
问个semaphore 和 mutex的问题SQL add some columns into a table from another table (转载
再抱怨一下大数据
mongoDB跟传统关系数据库比有什么优势?用数据库做蒙特卡洛模拟的问题
长度不等的时间序列用Matlab或R怎么存储比较方便? (转载)这道题有什么好思路?
问个SQL Server 2005问题 (转载)C++里 variable declaration 有什么用?
数据库能用来存储文件吗?两个C的#define问题
相关话题的讨论汇总
话题: many话题: 存储话题: friend话题: 关系数据话题: 关系