0

有没有人根据数据库记录保存文件但将它们存储在 PC 上的目录中?

因此,允许您根据数据库记录添加文件的软件,但在添加文件时,它会创建一个目录并获取文件的副本并将其放入其中。仍然允许用户进入数据库记录并从软件中查看文件。

任何帮助将非常感激。谢谢,

4

2 回答 2

1

您可以将文件存储在文件夹中并将路径保存在数据库记录中,但这会使文件仅可用于在同一台计算机上运行的软件。您可以改为使用 FTP 服务器并在其上存储文件,为它们指定与数据库记录中唯一字段相同的名称,例如自动生成/自动递增的 ID 字段。这样,运行在任何计算机上的客户端软件就可以很容易地检索与数据库记录对应的文件。

于 2015-05-28T08:43:00.063 回答
0

我实际上在我的一个程序中使用了这种方法。

现在请注意,我为此有一个定制的数据库和数据库引擎。

我真的怀疑这是否可以使用通用数据库引擎而不对其进行一些更改。为什么?

为了使其工作,您需要修改记录准备例程。什么是记录准备程序?

记录准备例程是从多个数据库表(关系数据库连接)中读取数据,然后将它们连接到最终发送到客户端的单个结构化记录的函数的数量。

正是这些例程控制了如何以及从何处读取某些数据。

为什么我决定实施这个?

嗯,那是很多年前,当我只拥有旧的基于 Win98 的计算机时。而且因为 Win98 不支持 NTFS 文件系统,而只支持 FAT32,所以我受到 3 GB 文件大小的限制,当将一堆文件直接保存到通常存储在单个文件或几个不同文件中的数据库中时,可能会很快超过这个大小(每个数据库一个表)在某些数据库中。

因为今天的计算机文件系统不再有这种限制,所以不再需要这种解决方案。

但我还是决定保留这个功能。为什么?

我存储的大多数文件都是文本文件。因此,为了进一步减少对数据库服务器的空间需求,我实施了字压缩。

因此,所有文件都被压缩,但是当客户端请求包含这些文件之一的某些记录时,文件将被解压缩并按原样发送给客户端(以保持与旧客户端软件的向后兼容性)。

在较新的客户端软件中,我以压缩格式传输这些文件以及解压缩所需的字典。所以文件现在在客户端解压缩。

至于我还存储的非文本文件,我计划实现一个自定义文件服务器,因此这些文件甚至不会通过数据库引擎本身传输,因为这会导致一些速度变慢,尤其是在文件较大的情况下。

于 2015-05-28T10:17:15.637 回答