开发者

Similar rows in MySQL

I'm trying to select the top ten most similar properties for a given property in a realty site and I wondering if you guys could help me out. The variables I'm working with would be price(开发者_运维百科int), area(int), bathrooms(int), bedrooms(int), suites(int), parking(int). At the moment I'm thinking of ordering by ABS(a-b) but wouldn't that be slow if I had to calculate that every time a property is viewed? (I'm not sure I could cache this since the database is constantly being updated) Is there another option?

Thanks for your help!


One solution could be to create a new table containing the result ready. Like this:-

property_id    similar_properties_ids
--------------------------------------
1              2,5,8
2              3,10
...
...

And a cron running at regular intervals doing the calculation for all the properties and filling up the similar_properties_ids.

So, at runtime, you don't have the calculation overhead but the downside is that you get results which are a little old (updated during the last cron run).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜