Re: [问题] 资料结构跟数据库的关联

楼主: LPH66 (-6.2598534e+18f)   2014-07-10 14:23:14
※ 引述《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 来表示
这样一来一样是可以在数据库里面进行所需要的操作的

Links booklink

Contact Us: admin [ a t ] ucptt.com