1

我想存储用户上传的每个媒体(图像/声音/视频/PDF)的标签。将来我想用这个标签来搜索媒体。我是一名初学者开发人员,我使用了一种方法来做到这一点。

我做了两张桌子

  1. 标记(标记,标记名)
  2. 媒体标签(Mediaid,Tagid)

    • 媒体是用户上传的数据数据
    • 标签是用于再次搜索媒体的简单词

例如,如果我上传一张图片,它将有一个 mediaid=M1,我会给它两个标签,分别是 Tag1、Tag2。现在

Table 1} will contain data => Row1 = T1-Tag1 ; Row2 = T2-Tag2 as schema[Tagid,Tag name]
Table 2} will contain data => Row1 = M1-T1 ; Row2 = M1-T2 as schema[Mediaid,Tagid] 

用户每次上传都会重复此操作。例如,当我必须搜索特定标签时:搜索“Tag1”。它会找到 Tag1 的 Tag id 是“T1” 它会在 Mediatags 表中查找标签 id 是“T1”的每个 meadiid

然后我会得到那些标签为 T1=Tag1 的媒体

我为此使用 MySQL。现在我想到了另一种机制,

如果我为每个标签制作一个 XML 文件,其中包含具有该标签的所有媒体 ID。在此示例中,将有 2 个 XML 文件 TAG1.XML 、 Tag2.XML 并且两者都将包含数据 M1 它在搜索时创建了两个步骤。找到该标签的 XML 文件。我们得到所有使用该标签的媒体。所以在这里,我会找到 XML 文件 TAG1.XML 并阅读它。它会给我所有使用标签 M1 的媒体 ID。我认为它可以在搜索时提供帮助。但是会生成太多的 XML 文件!我将按字母字典对它们进行排序。

我只是想知道, 1. 这里使用这种 XML 方法然后使用 MySQL 的效率如何?2.在MySql 2表中查找数据然后查找存储在固定目录中的XML文件,哪个更好?

如果我使用第一种方法,MySql 表中会有很多行,而在第二种方法中会有很多 XML 文件(一个 XML 文件不会很重,但会有很多 XML 文件!)

这就是为什么我很困惑什么是更首选的方法!请建议!

4

1 回答 1

1

这两种方法都行得通。您的问题是效率之一,而不是能力(如果我理解您的话)。要回答效率问题,您需要非常了解您的应用程序的要求。

这里有一些问题要问自己:

  1. 数据项(艺术家简历)会是相当静态的,还是您的系统会有很多数据项不断出现、变化和运行?
  2. 您是否计划对这些项目进行大量动态查找?
  3. 您的查找是按标签,还是按内容,或两者兼而有之?

如果您的系统具有少量更改和查找,则使用 XML 具有优势。它在您存储的数据的定义方式上更加灵活。XPath 查询语言很难学习,但是一旦你熟练掌握它就可以很好地工作。但是,除非您投资安装和学习使用像 MarkLogic 这样的 XML 感知服务器,否则它不会很快。它会很慢。

否则,坚持使用 MySQL。对于此类工作,它具有一些关键优势,包括其FULLTEXT查询能力。

你正在做的是所谓的“语义网”工作的一个子集。您可能会对此进行一些阅读,以及用于表示元数据的名为“都柏林核心”的方案。很多脑力已经投入到试图解决这个问题上。试图解释他们的结果的脑力略少,这使得学习语义网成为一项艰巨的任务,但仍然值得。

请考虑使用 WordPress、Drupal 或 Joomla 等内容管理系统!构建这个系统的第一个版本。您也可以考虑使用像 MediaWiki 或 Twiki 这样的 wiki 平台。

您会发现这些系统很好地支持各种标记(分类)方案。至于搜索:它只是工作。“坚持构建”的 Web 应用程序一开始echo "Hello, world of music!";需要大量重复和无聊的工作,然后才能获得任何结果。

如果你正在建造一个游行花车,你会从一辆卡车开始,而不是一桶螺栓、一把锯子和一些木材。网站的相同交易。

于 2013-01-26T16:07:36.227 回答