I've learned that views can be used to create custom "table views" (so to say) that aggregate related data from multiple tables.

My question is: what are the advantages of views? Specifically, let's say I have two tables:

event | eid, typeid, name
eventtype | typeid, max_team_members

Now I create a view:

eventdetails | event.eid, event.name, eventtype.max_team_members 
             | where event.typeid=eventtype.typeid

Now if I want to maximum number of members allowed in a team for some event, I could:

  • use the view
  • do a join query (or maybe a stored procedure).

What would be my advantages/disadvantages in each method?

Another query: if data in table events and eventtypes gets updated, is there any overhead involved in updating the data in the view (considering it caches resultant data)?

Edit
Report