作者LPH66 (1597463007)
看板Programming
标题Re: [问题] 资料结构跟资料库的关联
时间Thu Jul 10 14:23:14 2014
※ 引述《jscorpio1 (我 天蠍)》之铭言:
: 一直有这样的疑问
: 就是资料结构所说的sort、search、tree、graph........
: 到底要怎麽跟资料库结合?
: 资料存进资料库,就一定会变成主键栏位跟一堆内容栏位
: 比如说是会员资料、商品明细、会员活动纪录....
: 可以在资料库里存成tree或graph吗?
: 或者该怎麽在资料库里进行heap 或 binary search??
: 又或者还是要先把资料从资料库里捞出来,放到记忆体里,
: 再从记忆体里,去实作资料结构所说的各种方式,达到所要的资料操作
: 最後,再回归到主键跟内容栏位,写回资料库
: 有点混乱,不知道有没有人知道我想表达的问题点。
sort / search 这类比较没有"资料间关连"的演算法
基本上主流资料库都已经能做了
(或者该说这就是资料库系统做出来的主要目的之一
尤其是你提到的 sort (ORDER BY clause) 跟 search (WHERE clause)
这可是资料库系统最常用的操作)
因此跟这些演算法相关的资料结构 (如 heap 或红黑树等等)
资料库系统里本来就该内建, 然後让使用者透过 SQL 指令去叫用
至於像 tree / graph 这种有"资料间关连"的结构则通常有两种做法
视乎是何种资料之间的关连
如果是不同类资料的关连的话, 资料库系统有个东西叫 foreign key 可以用来处理
或者就算不用 foreign key 也可以在查询时使用 table join 来连结
而如果是像 tree 这种同类资料之间的关连
回想一下最一开始不用资料库的时候, 我们是用指标来抓住这种关连
但指标是什麽? 其实就只是一个用来辨识许多同类东西当中之一的值而已
这种值在资料库系统有个现成的概念叫做 primary key
因此这种资料结构如果要存进资料库系统的话
这种指标之间的连结经常是以栏位里放进别人的 primary key 来表示
这样一来一样是可以在资料库里面进行所需要的操作的
--
1985/01/12 三嶋鸣海 1989/02/22 优希堂悟 1990/02/22 冬川こころ 1993/07/05 小町
つぐみ 欢迎来到 1994/05/21 高江ミュウ 1997/03/24 守野いづみ 1997/03/24 伊野瀬
チサト 1998/06/18 守野くるみ 打越钢太郎的 1999/10/19 楠田ゆに 2000/02/15 樋口遥
2002/12/17 八神ココ 2011/01/11 HAL18於朱仓岳坠机 ∞与∫的世界 2011/04/02 茜崎空
启动 2012/05/21 第貮日蚀计画预定 2017/05/01~07 LeMU崩坏 2019/04/01~07 某大学合宿
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.30.32
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Programming/M.1404973397.A.4AA.html
※ 编辑: LPH66 (140.112.30.32), 07/10/2014 14:23:49
1F:→ KAOKAOKAO:怒推签名档 1.160.128.239 07/27 06:10