2009-08-21 96 views
2

我目前正在研究推荐系统,特别是音频文件。但我是这个主题的初学者。我试图用mysql设计数据库,但我不能决定如何去做。基本上是一个用户创建配置文件的系统然后搜索音乐和系统推荐他们喜欢的音乐。推荐引擎数据库的设计?

  1. 我应该使用哪个数据库?(mysql的 来到我的脑海里的第一猜测)
  2. 它是一个web项目,并随后 与移动side.Which技术 我应该使用?(PHP,Android的 平台...)
  3. 什么是这个项目 的陷阱。
  4. 如何为系统设计数据库 那样?

回答

4

任何关系型数据库应该是不错的,用于存储喜欢歌曲列表,用户列表,用户的喜好歌曲的原始数据..

我认为你会发现一个关系数据库(和SQL)是对于存储推荐人将要构建的各种数据结构来说并不是那么好。您的推荐引擎可能会创建并不真正需要放入表格中的数据,并将其用于关系数据库中的存储操作可能只是浪费工作。

要知道你在做什么,不花时间把东西到SQL数据库,如果感觉不对。也许看看使用面向文档的数据库,如MongoDB

的推荐,我最近写的其实是一个Java服务器的过程,从MySQL中的原始数据读取,完成所有其内存的工作,并通过HTTP API提供的推荐数据我的应用程序。由于可以重新生成,所以我甚至都不会永久存储推荐数据。

3

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

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

我不会在数据库中存储实际的音频文件,而不是我将存储音频文件的参考。 – 2009-08-21 12:58:24

+0

@Burak:他们仍然使用相同数量的存储空间。 – Eric 2009-08-21 13:05:51

4

去阅读"Programming Collective Intelligence"。他们在第2章“制定建议”中提供了许多用于建议的精细算法。

+0

我有这本书,我希望它是一本理论书,但它不是那样的,作者使用了很好的例子 – 2009-08-21 12:56:02