我想制作相当简单的数据库,它应该存储视频文件和声音文件。我想使用MS Access数据库(mdb),但这仅限于 2 GB 。 我不想使用服务器 - 客户端解决方案,因为它应该是单个应用程序,只使用存储在本地硬盘上的本地数据库。这就是主意。
你可以给我一个建议吗?
感谢名单
答案 0 :(得分:11)
我选择嵌入式Firebird。您可以拥有免维护的桌面应用程序,如果需要,您可以稍后将其扩展到完整的C / S系统。你也有足够的库(免费或不免费 - Zeos,UIB,IBObjects,FIBPlus)从Delphi中使用它。没有提到最新的Delphi有一个DBX驱动程序OOTB。
此外,在数据库blob中包含大量数据(如果设计正确)不会影响搜索速度。
HTH
答案 1 :(得分:6)
如果要存储视频/音频数据等二进制数据,则应考虑使用文件系统并将宽度,高度,长度,作者等元数据放入您选择的数据库中。我喜欢MySQL。
答案 2 :(得分:2)
Firebird是Delphi的最佳选择之一,并且存在一个嵌入式版本
关于Firebird和blob storage
的文章答案 3 :(得分:1)
Sqlite怎么样?这是适合您的需求我敢肯定,而且,它是公共领域。还有针对不同语言的绑定。有关Sqlite的Delphi接口,请参阅here。
在zebrabox的评论之后编辑 - 您可以创建一个简单的表格来识别不同的资源和路径......就像这样
CREATE TABLE "BlobId" ( "BLOB_TYPE" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ); CREATE TABLE sqlite_sequence(name,seq); CREATE TABLE "BlobInfo" ( "BlobInfo_Id" INTEGER PRIMARY KEY NOT NULL, "BlobInfo_Date" TEXT NOT NULL, "BlobInfoPath" TEXT NOT NULL );
BlobId
表的值为1表示图像,2表示音频,3表示视频,它将逻辑链接到BlobInfo
表
BlobInfo 1, 2010-02-13 04:05:40 C:\Blobs\SomeImage1.jpg 1, 2010-02-13 04:05:40 C:\Blobs\SomeImage2.jpg 2, 2010-02-13 04:05:40 C:\Blobs\SomeSound.wav 3, 2010-02-13 04:05:40 C:\Blobs\SomeVide.mp3
通过使用Sqliteman(Sqlite Manager GUI前端来管理Sqlite数据库),可以使工作更轻松。您有责任确保路径足够灵活,可以与数据库一起移动。
希望这有帮助, 最好的祝福, 汤姆。
答案 4 :(得分:1)
如前所述,我还建议FIREBIRD。 Delphi为此提供本机支持,它需要最少的代码开销,易于安装,零维护,可移动(如果需要),超级功能集,最重要的是:即使是商业产品也完全免费。
比较一个玩具工具集(MySQL)和一个真正的Pro工具(Firebird)可能会考虑比较MySQL和Firebird。 - 我希望这不会发动战争......
答案 5 :(得分:0)
它有一个本地服务器选项,非常容易使用。 我的主表中有大约12000条记录,其中70000条链表各有一张图片和一个音频文件(完整的mp3歌曲),数据库中有大约800个视频剪辑。
一切都很好。
你应该进行测试。
最诚挚的问候。
答案 6 :(得分:0)
PostgreSQL未嵌入,但您可以在本地计算机上运行(在单独的进程中)。它可以将BLOB存储在“bytea”数据类型中。开源和免费。
PS我认为bytea字段的最大大小可能是4GB,因为有一个四字节长度字段,但我看不到postgres文档中明确说明的内容。
答案 7 :(得分:0)
我建议 DB2 。从版本9开始的DB2支持非常大的表。最大值是巨大的。 512000 PB ,半个zettabyte。
答案 8 :(得分:0)
我们使用devart pg组件的postgreSQL在中型数据库应用程序中取得了巨大成功。我们使用这种组合做了一些有限的基准测试,发现它使用ADO的速度是2-3倍。