Pros and Cons of creating a new table to store matches vs frequently running query to find matches
It really depends on your requirement. Once the user has thier results, how much do you care about what they wanted, got, liked or disliked?
It sounds to me you want to learn from customer experience and preferences, so storing both the query and the response would be useful. Storing that on the db server means you can analyse the queries and results.
Personally i would save the query parameters and results (and thier response), as xml or json in 2 seperate fields.
Xml or json are useful because they allow your query/results to evolve over time with minimal changes to schema.
If you can just store the venue id, the results wont be huge. All depends on how much you need to store. If you can view the results with the query for context it should make sense.
Its worth considering that if venues are added or removed that a user will get a different result if they run the same query at a later date. So you may want go store queries and results in different tables if you want to retain a 1 to many relationship and history over time. E.g if i have my favourite query and run it once a week, do you want to store each result?