【发布时间】:2011-01-13 15:34:28
【问题描述】:
我有一个分类网站。 我正在使用 SOLR 来索引和存储数据。然后我还有一个 MySQL 数据库,其中包含一些关于我不存储或索引的分类的更多信息。
现在,我有一个包含 4 个表的标准化数据库。
每当在网站上搜索广告时,SOLR 都会进行搜索并返回一个 ID_numbers 数组,然后该数组将用于查询 mysql。 所以 solr 返回 id:s,然后用于从 mysql db 中获取所有具有 THOSE id:s 的广告。
现在,我的表之间的所有 JOIN 和关系都让我头疼。
拥有一个标准化的数据库,除了易于维护之外,我还能得到什么?
你知道吗,将所有信息存储到一个大约有 50 列的表中。
因此,而不是这个寻找一个广告并显示它:
SELECT
category_option.option_name,
option_values.value
FROM classified, category_option, option_values
WHERE classified.classified_id=?id
AND classified.cat_id=category_options.cat_id
AND option_values.option_id=category_options.option_id
我可以用这个:
SELECT * FROM table_name WHERE classified_id = $classified_id
最后一个实际上不是更快吗? 还是标准化的数据库执行得更快?
谢谢
【问题讨论】:
标签: php sql mysql database normalization