首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL中的链表

SQL中的链表
EN

Stack Overflow用户
提问于 2008-09-15 18:02:02
回答 13查看 51.1K关注 0票数 67

在MySQL数据库中存储链表的最好方法是什么,这样插入就很简单(即不必每次都对一堆东西重新索引),并且可以很容易地按顺序取出链表?

EN

Stack Overflow用户

发布于 2015-04-07 00:42:37

这是我自己一段时间以来一直在努力弄清楚的事情。到目前为止,我找到的最好的方法是使用以下格式(这是伪代码)为链表创建一个表:

LinkedList(

  • key1,高级信息,
  • information,英特尔

)

key1是起点。Key2是一个外键,链接到下一列中的自身。因此,您的专栏将链接某些内容,如下所示

col1

  • key1 = 0,
  • information= 'hello'
  • key2 = 1

Key1是col1的主键。key2是通向col2的key1的外键

col2

  • key1= 1,= null

来自col2的key2被设置为null,因为它没有指向任何内容

当您第一次在中输入表的列时,需要确保将key2设置为null,否则会出现错误。输入第二列后,可以返回并将第一列的key2设置为第二列的主键。

这样做的最佳方法是一次输入多个条目,然后返回并相应地设置外键(或者构建一个GUI来为您完成此操作)

下面是我准备的一些实际代码(所有实际代码都在MSSQL上运行。您可能想要为您正在使用的SQL版本做一些研究!):

createtable.sql

代码语言:javascript
运行
复制
create table linkedlist00 (

key1 int primary key not null identity(1,1),

info varchar(10),

key2 int

)

register_foreign_key.sql

代码语言:javascript
运行
复制
alter table dbo.linkedlist00

add foreign key (key2) references dbo.linkedlist00(key1)

*我将它们放在两个单独的文件中,因为它必须分两步完成。MSSQL不会让您一步到位,因为外键引用的表还不存在。

链表在一对多关系中特别强大。那么,如果您曾经想要创建一个外键数组呢?好的,这是一种方法!您可以创建一个指向链接列表中第一列的主表,然后可以使用指向所需信息表的外键,而不是" information“字段。

示例:

假设您有一个维护表单的官僚机构。

假设他们有一张叫做文件柜的桌子

FileCabinet(

  • 文件柜ID (Pk)
  • 文件ID (fk) )

每列包含文件柜的主键和文件的外键。这些文件可以是税务表格、健康保险文件、实地考察许可单据等

文件(

  • 文件ID (Pk)
  • 文件ID (Fk)
  • 下一个文件ID (fk)

)

它用作文件的容器

文件(

文件上的

  • 文件ID (pk)
  • Information

)

这是特定的文件

可能有更好的方法来做到这一点,根据您的特定需求,确实有一些方法。这个例子只是说明了可能的用法。

票数 3
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档