【问题标题】:Writing you own media library: where to start?编写自己的媒体库:从哪里开始?
【发布时间】:2010-04-16 14:31:56
【问题描述】:

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

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

【问题讨论】:

    标签: php zend-framework doctrine multimedia


    【解决方案1】:

    不知道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)
    

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

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

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

    这不太适合的一件事是在场外托管媒体。如果您使用 Amazon S3 来存储这些图像,那么“文件名”字段实际上就是图像的 URL。我只是将其作为您在设计媒体库时需要考虑的事情。

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

    祝你好运。

    【讨论】:

      【解决方案2】:

      编写文件上传器和文件浏览器
      就是这样

      【讨论】:

        猜你喜欢
        • 2010-11-07
        • 1970-01-01
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        相关资源
        最近更新 更多