我想将媒体库添加到基于Zend Framework和Doctrine构建的定制CMS中。我们的目标是构建像Worpress的媒体库:你可以上传媒体,然后将其附加到例如文章。
您对此有何建议?应该如何设计数据库?是否有任何代码可以(重新)用于构建它?有没有关于这个主题的文献?谢谢!
答案 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)
写一个文件上传器和文件浏览器
这都是