编写自己的媒体库:从哪里开始?

时间:2010-04-16 14:31:57

标签: php zend-framework doctrine multimedia

我想将媒体库添加到基于Zend Framework和Doctrine构建的定制CMS中。我们的目标是构建像Worpress的媒体库:你可以上传媒体,然后将其附加到例如文章。

您对此有何建议?应该如何设计数据库?是否有任何代码可以(重新)用于构建它?有没有关于这个主题的文献?谢谢!

2 个答案:

答案 0 :(得分:2)

我不知道如何构建WP库,但它是开源的,你可以看看。

对于表结构,假设你想要一个多对多链接,你需要一个交叉引用表,如:

record_id (int)
media_id (int)
title (text)
caption (text)
rank (int)

然后媒体表就像:

id (int)
title (text)
caption (text)
filename (text)
type (image|multimedia|document)

也许您还要将一个folder_id字段添加到媒体表中,或者您可能想要标记,在这种情况下,您有第三个表,其中media_id和标记作为字段(或者您有标签)在媒体表中以逗号分隔的值)。

这样,您就可以将一个媒体链接到多个项目,将一个项目链接到多个媒体。它可以让您为媒体项设置标题和标题,并覆盖特定链接。例如,你有一个房子的图片,房子的标题是,但是在一个链接中,标题被覆盖(在交叉参考表中),文字说明这个房子是某个建筑的例子。 SQL的 coalesce 函数将为获得正确的标题和标题而派上用场。

如果链接到媒体的内容来自多个表格,假设您有一个名为“staff”的表和另一个名为“products”的表,并且它们都可以链接到媒体,那么交叉引用表也需要有一个 table_name 字段。 类型字段使您只能轻松获取附加到记录的多媒体,或仅获取图像;您可能想要计算附加了多少文档,有多少图像等,基于每个查询的文件名,这意味着您的查询速度较慢。

这一点不太适合在网站上托管媒体。如果你使用说Amazon S3来存储这些图像,那么'filename'字段实际上就是图像的URL。我只是在设计媒体库时需要考虑到这一点。

我想不出你可以复制粘贴的任何文献或代码,但这并不难做到,虽然我很欣赏这可能很费时间。

祝你好运。

答案 1 :(得分:0)

写一个文件上传器和文件浏览器
这都是