【问题标题】:Design of the recommendation engine database?推荐引擎数据库的设计?
【发布时间】:2009-08-21 12:45:11
【问题描述】:

我目前正在研究推荐系统,尤其是音频文件。但我是这个主题的初学者。我正在尝试首先使用 mysql 设计数据库,但我无法决定如何去做。它基本上是用户创建的系统profile 然后搜索音乐,系统会推荐他们喜欢的音乐。

  1. 我应该使用哪个数据库?(Mysql 我首先想到的是)
  2. 它是一个网络项目,然后 与移动端。哪些技术 我应该使用吗?(php,android 平台...)
  3. 这有什么陷阱 项目。
  4. 如何为系统设计数据库 像这样?

【问题讨论】:

    标签: mysql audio database-design recommendation-engine


    【解决方案1】:

    任何关系数据库都应该适合存储原始数据,例如歌曲列表、用户列表、用户歌曲偏好..

    我认为您会发现关系数据库(和 SQL)对于存储您的推荐人将要构建的各种数据结构并不是很好。您的推荐引擎可能会创建实际上不需要在表中的数据,并对其进行操作以存储在关系数据库中可能只是浪费工作。

    只要注意自己在做什么,如果感觉不对,就不要花时间将东西放入 SQL 数据库。也许考虑使用像MongoDB 这样的面向文档的数据库。

    我最近编写的推荐器实际上是一个 Java 服务器进程,它从 MySQL 中读取原始数据,在内存中完成所有工作,并通过 HTTP API 向我的应用程序提供推荐数据。我什至懒得永久存储推荐数据,因为它可以重新生成。

    【讨论】:

      【解决方案2】:

      去阅读"Programming Collective Intelligence"。他们在第 2 章“提出建议”中提供了许多很好的推荐算法。

      【讨论】:

      • 我有那本书,我希望它是一本理论书,但它不是那样的,作者使用了非常好的例子
      【解决方案3】:

      嗯,这是一个含糊不清的问题,但我会尽力回答:

      1. MySQL 是一个可靠的数据库,PostgreSQL 也是如此。两者都是免费和开源的。 MySQL 得到更广泛的支持并且更易于使用,但 Postgres 有一些非常酷的特性和功能,值得一试。 WikiVS 对两者进行了很好的比较。
      2. 智能手机的浏览器越来越好。使用 PHP 或 ASP.NET(无论您喜欢什么),然后构建一个在较小分辨率下看起来更好的移动网站。
      3. 有很多。首先,你的推荐算法有多好?其次,存储音频文件会很快占用存储空间。你的扩展计划是什么?第三,你对数据库设计了解多少?你能设计一个庞大的、庞大的数据库并正确地索引它吗?如果没有,您需要开始阅读有关索引和数据库设计的所有内容。第四,它是一个软件项目,那些总是有陷阱的。您能做的最好的事情就是在出现问题时在此处发布,我们总能看到 StackOverflow 的优秀人员可以提供哪些帮助。

      【讨论】:

      • 我不会在数据库中存储实际的音频文件,而不是存储音频文件的引用。
      • @Burak:他们仍然使用相同数量的存储空间。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      相关资源
      最近更新 更多