php - 写你自己的媒体库 : where to start?

标签 php zend-framework doctrine multimedia

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

您对如何着手有什么建议吗?数据库应该如何设计?我可以(重新)使用任何代码来构建它吗?关于这个主题,我应该阅读任何文献吗?谢谢!!

最佳答案

我不知道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 和 tag 作为字段(或者您有标签作为媒体表中的逗号分隔值)。

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

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

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

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

祝你好运。

关于php - 写你自己的媒体库 : where to start?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2653699/

相关文章:

events - Symfony2 DoctrineExtensions preSoftDelete 事件调用

PHP文件上传无法在同一表单上发送POST数据

php - 用户可以通过或不通过身份验证在单个YouTube channel 上上传视频

php - Zend 响应应用程序/json utf-8

php - Symfony Doctrine EntityManager 没有正确刷新

php - 使用 Doctrine 加入多对多关系 Symfony4

php - 领英公司动态

php - 如何用里面的php函数回显href?

php - 如何将请求实例从一个 Controller 函数传递到另一个 Controller 函数

php - Zend Framework 1.12 选择元素 - 名称数组问题