更新查询以反映规范化数据库

时间:2016-04-01 02:19:54

标签: php mysql database-schema

我正在尝试创建一个文章网站,但我想规范化我当前的数据库。我有四个表,每个表都标记一个类别,除了一个。这四个表是:娱乐,生活方式,科学和文章。文章是娱乐,生活方式和科学的所有条目的组合。我想删除娱乐,生活方式和科学,只需离开文章表,从而节省空间并提高性能。我面临的唯一问题是查询通过获取表的最后一个ID来生成随机文章,然后获得一个介于6和最大ID之间的随机数。

我的所有表格都具有以下结构:id(唯一),category(这是文章的类型,即娱乐),title(文章标题),{ {1}}(文章的图片网址),image(文章的网址),link(本文的观看次数)和Counter(文章的日期)出版)。这是我试图根据我的规范化数据库更新的查询。

dateStamp

我应该如何更改/更新此查询以使其能够从Articles表中获取随机娱乐文章?我对任何可以改善查询性能的更改持开放态度。

1 个答案:

答案 0 :(得分:0)

不是选择随机结束ID,而是随机化所有行并从中选择6。

SELECT *
FROM Articles
WHERE category = 'Entertainment'
ORDER BY RAND()
LIMIT 6

如果您需要避免ORDER BY RAND(),因为它的效果不佳,请参阅How can i optimize MySQL's ORDER BY RAND() function?