2010-09-05 97 views
4

我正在构建一个Web应用程序,并且正在考虑如何构建数据库。这是使用mysql的好方法吗?

该应用程序将通过关键字提供,然后它将检索这些关键字的信息并使用日期戳将其保存到数据库中。这些信息将来自不同的来源,例如,雅虎的结果数量,包含该关键字的最后一个月的数据挖掘等。

所以我想一个简单的方法来做到这一点将是有一个表id和关键字列存储关键字,另一个表的所有数据与id(与关键字相同),datestamp,data_name,data_content。

这是一个很好的方式来使用MySQL或可以在某种程度上使查询更慢或sometihng?我应该为每种我想使用的数据类型建立表格吗?我主要在应用程序上寻找良好的性能。

我想只使用一个表的数据的另一个原因是,我可以方便地添加更多的data_name(s)而不用触及数据库。

+1

没有好的方法来使用MySQL。使用PostgreSQL。它更健壮,您不必为了使用转换而更改数据库表定义,也不会受到Oracle的威胁。 – 2010-09-05 01:26:10

回答

0

第二个表,即,其中包含有关关键字的各种信息的表,在这个表id列可以作为一个外键第一个表ID列

+0

感谢您的信息 – jarkam 2010-09-05 00:39:52

+0

这是真的,你可以使用它们链接它们: 'SELECT * FROM table1,table2 WHERE table1.id = table2.id' – Lee 2010-09-05 00:40:11

0

这是使用MySQL的一个好办法或 可以在某种程度上使查询 更慢或sometihng?我应该为每种类型的数据建立 表我想要 使用?我主要在应用程序上寻找良好的 性能。

许多大型MySQL播放器(例如flickr)使用MySQL作为简单的KV(键值)存储。

此外,如果你关心性能,你应该缓存你的数据在memcached/redis(没有什么可以打败内存)。

0

我有另一个建议:索引你的内容。如果您计划存储内容并能够使用关键字进行搜索,请使用mysql来存储文档的详细信息,如作者,文本和其他信息,并使用Lucene创建索引。 Lucene最初是针对Java的,但是它有许多语言的端口,PHP也不例外。

您可以使用Zend framework来管理Lucene索引,只需很少的工作,浏览documentation或在线查找教程。这个建议的事情很简单: - 你会大大提高你的搜索时间 - 你的关键字接受度会更高,Lucene会给力搜索

我希望我可以帮忙! 祝你好运!

相关问题