4

我想向基于 Zend Framework 和 Doctrine 的定制 CMS 添加一个媒体库。目标是构建类似于 Worpress 的媒体库的东西:您可以上传媒体,然后将其附加到例如文章中。

你有什么建议如何开始吗?数据库应该如何设计?有没有我可以(重新)使用的代码来构建它?我应该阅读有关此主题的任何文献吗?谢谢!!

4

2 回答 2

2

不知道WPs库是怎么搭建的,不过是开源的,大家可以看看。

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

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 来存储这些图像,那么“文件名”字段实际上就是图像的 URL。我只是把它作为你在设计媒体库时需要考虑的事情来拍摄。

我想不出任何可以复制粘贴的文献或代码,但这并不难,尽管我很欣赏这可能很耗时。

祝你好运。

于 2010-05-07T17:45:32.053 回答
0

写一个文件上传器和文件浏览器
就可以了

于 2010-04-16T15:15:05.540 回答