使用 DataLinks
DataLink 数据类型扩展了可以由数据库文件引用的数据类型。 对于 DataLink, 列中存储的数据是指向对象的指针,而不是对象本身。
此对象可以是任何事物,图像文件,语音记录,文本文件等。 用于解析对象的方法是存储统一资源定位器( URL )。 这意味着,表格中的一行可用于包含传统数据类型中有关对象的信息,而对象本身可使用 DataLink 数据类型进行引用。 用户可以使用 SQL 标量函数来返回对象的路径以及存储对象的服务器。 DataLink 数据类型中,行和对象之间的关系相当松散。 例如,删除一行将切断与 DataLink, 所引用对象的关系,但对象本身可能不会被删除。
使用 DataLink 列创建的表可用于保存有关对象的信息,而不实际包含该对象本身。 这使用户在可使用表进行管理的数据类型方面具有更大的灵活性。 例如,如果用户在其服务器的集成文件系统中存储了数千个视频片段,那么他们可能希望使用 SQL 表来包含有关这些视频片段的信息。 但是,由于用户已将对象存储在目录中,因此他们只希望 SQL 表包含对对象的引用,而不是实际的存储字节数。 一个好的解决方案是使用 DataLinks。 SQL 表使用传统 SQL 数据类型来包含有关每个片段的信息,例如标题,长度,日期等。 但是,使用 DataLink 列来引用剪辑本身。 表中的每一行都存储了对象的 URL 和可选注释。 处理剪辑的应用程序可以使用 SQL 接口检索 URL ,然后使用浏览器或其他播放软件处理 URL 并显示视频剪辑。
使用此方法有以下几个优点:
- 集成文件系统可以存储任何类型的流文件。
- 集成文件系统可以存储不适合字符列,甚至可能不适合 LOB 列的超大对象。
- 集成文件系统的分层性质非常适合组织和使用流文件对象。
- 通过将对象的字节保留在数据库外部和集成文件系统中,应用程序可以通过允许 SQL 运行时引擎处理查询和报告,以及允许文件系统处理视频流,显示图像,文本等来实现更好的性能。
使用 DataLinks 还可以在对象处于 "已链接" 状态时对其进行控制。 可以创建 DataLink 列,这样当 SQL 表中存在引用该对象的行时,无法删除,移动或重命名引用的对象。 此对象被视为已链接。 删除包含该引用的行后,将取消链接该对象。 要全面了解此概念,您应该知道在创建 DataLink 列时可以指定的控制级别。